home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games: 500 MB Amiga Software
/
500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso
/
userbox
/
publicdomain
/
term
/
term.doc
< prev
next >
Wrap
Text File
|
1995-09-26
|
372KB
|
8,985 lines
`term' 4.5 - A terminal program for Amiga computers
Copyright © 1990-1995 Olaf Barthel
You may make and distribute verbatim copies of this documentation if
the contents are unchanged or the author has agreed to any changes made.
No guarantee of any kind is given that the program described in this
document are 100% reliable. You are using this material on your own
risk.
The program `term' and the data received/sent by it must not be used
for the following purposes:
1. The construction, development, production or testing of weapons or
weapon systems of any kind.
2. The construction, development, production or use of
plants/installations which include the processing of
radioactive/fissionable material.
3. The training of persons to deal with the abovesaid actions.
Listen to your conscience.
Introduction
************
`term' is a telecommuncations program designed for use with any
Commodore-Amiga computer running Kickstart 2.04 or higher. Its features
include
* Fast built-in VT220 terminal emulation
* Support for custom terminal emulation modules following the `XEM
2.0' standard
* Operates in any display environment, supports all screen display
modes
* Support for file transfer modules following the `XPR' standard
* File- and printer-capturing functions
* Review-buffer support
* Powerful phonebook and dialing functions
* `Amiga User Interface Style Guide' conformant user interface
* Online-help (requires AmigaGuide package)
* Built-in `ARexx' interface
* File upload list, which permits selecting the files to be
transferred before the upload is started.
* Login script learn mode.
* Built-in keyword/response parser which makes it possible to have
`term' respond to BBS prompts and such with the user name,
password, etc. without having to program the ARexx interface.
* Interface for external programs to rendezvous with `term', taking
over serial I/O processing (such as `HydraCom').
Although this program is freely-distributable, it is not entirely
free. If you like it and use frequently, you are requested to send the
author a donation which you suppose will do as a payment for the
program. See the chapter registration (see Registration) for details.
Admittedly, `term' is a fairly large program which consumes quite an
amount of memory when running. You need to have at least 2 MBytes of
system memory installed if you wish to run the program. Please note
that this is the bare minimum configuration. It is recommended that you
run `term' on a faster machine, i.e. plain MC68000-driven Amigas will
have trouble running the program.
Registration
************
`term' is made available under the concept of Gift-Ware, which is a
variant of Share-Ware. Share-Ware software authors often release
`crippled' versions of their products, i.e. these programs do not
support the same functionality as the registered versions you get when
sending monetary contributions to the authors. It all comes down to
`pay for the software you are using' in Share-Ware terms. With
Gift-Ware registration is different, you are not required to contribute
money, but a gift will do. With `term' you always get a fully
functional program, there is no `crippled' test release which you can
try for a limited time and then have to pay for in order to receive the
working registered version.
It may seem as if `term' was free, but this is not the case.
Although there is no need to pay the author in order to get a fully
functional version of the program you should consider making a
contribution. You don't need to feel guilty if you cannot or do not
want to give me something in return for the work I have put into
`term'. Show me that it was worth spending so much time listening to
users, updating, rewriting and enhancing this program. Your
contributions will provide the motivation for me to keep developing the
program.
One of the preferred methods of `payment' would be to order the
`Olsen Opals' CD-ROM. This CD contains almost every program I have
written for the Amiga in the last seven years. The CD can be bought for
US$ 35 directly from me or from your local software distributor.
If you don't have any CD-ROM drive or just don't want to buy the CD,
here is a list of suggested contributions:
* An old Cinemaware game (`Rocket Ranger', `Sinbad and the Throne of
the Falcon', `SDI', `It came from the Desert II')
* An old game by Activision (`Portal', `Tass Times in Tonetown')
* An old Electronic Arts program (`Seven Cities of Gold', `Marble
Madness', `Deluxe Paint', `Deluxe Print', `Deluxe Music
Construction Set', `Deluxe Video')
* An old Epyx game (`Rogue')
* An old Rainbird or Firebird game (`Starglider', `Jewels of
Darkness', `Black Lamp')
* Infocom games and Infocom hintbooks. Although I already own almost
all games published in `The Lost Treasures of Infocom vol I+II' I
still collect the originals (not those super-cheap Virgin Software
re-releases). With the exception of `A Mind forever voyaging',
`Arthur', `Hollywood Hijinx', `Infidel', `Leather Goddesses of
Phobos', `Nord and Bert couldn't make head or tail of it',
`Plundered Hearts', `Shogun', `Spellbreaker', `Suspect', `The
Lurking Horror', `Trinity', `Wishbringer', `Zork I', `Zork Zero'
(which I already own) I welcome any game in any format - it does
not necessarily have to be an Amiga game, Apple II, Kaypro,
Atari-XL, C64, etc. will be fine, too.
* An old Telarium/Trillium game for the C64 on 5.25" floppy disk
(such as `The Amazon', `Rendezvous with Rama', `Fahrenheit 451').
* An old Lucasfilm game for the C64 on 5.25" floppy disk (such as
`Rescue on Fractalus', `Ballblazer'). Please send only the PAL
versions as the original American program versions were tuned for
NTSC machines.
* Scenery disks for the SubLogic Flight-Simulator II - except for
`Western European Tour', `Hawaiian Scenery Adventure', `Japan',
`USA #7', `USA #9', `USA #11' and `USA #14'.
* The films `City Slickers', `Jabberwocky', `Brazil', `The Fisher
King', `Time Bandits', `Annie Hall', `Zelig' or `Alien' on a
PAL-VHS video cassette
* A CD by the Beatles (specifically, `Please please me', `With the
Beatles' aka `Meet the Beatles', `Beatles for sale' or `Past
Masters Vol. 1'), Little Feat (-1989), Weather Report, Paul Simon
(1971-1985), Eric Clapton (-1985), Peter Gabriel (1977-1989), Van
Morrison or Daniel Lanois
* A book by Michael Crichton, Bruce Chatwin, Raymond Chandler, Terry
Pratchett or Steven Meretzky
* Cash and checks (no credit cards - sorry) are always welcome.
Send your contribution to the following address:
Olaf Barthel
Brabeckstrasse 35
D-30559 Hannover
Federal Republic of Germany
If you wish to be notified when program updates become available or
wish to order the next update as it becomes available you must include
enough money to cover my expenses, see the chapter entitled orders (see
Orders) for more information.
Commercial distribution
***********************
I don't mind if you make a copy of `term' for a customer who is
looking for a decent terminal program. But if you decide to distribute
the program on a larger scale, such as by including a copy with each
modem you sell, I want to know about it. The reason is this: by
distributing `term' you take a certain responsability; if your customer
has difficulties in installing and configuring the program she/he will
most likely ask you for assistance. I want to make sure that if a
`term' user is in bad need of help there is somebody who will be able
to provide it. If you wish to become a `term' distributor and want your
name displayed in the `About' window, contact me for details.
As a general rule, no profit must be made by distributing `term',
i.e. you may charge fees for copying, disks and for providing a printed
manual but no money must be charged for the software itself. I consider
taking legal actions against anyone who violates this rule. Payments
for using the program should be made to the author, not to the provider.
Orders
******
You can order a copy via standard mail by sending a self-addressed
envelope, including postage and disks (more on this below) to the
following address:
Olaf Barthel
Brabeckstrasse 35
D-30559 Hannover
Federal Republic of Germany
Either include three 3.5" double-density disks or two 3.5"
high-density disks. The postage must cover the mailing costs, this
should be the equivalent to DM 8,- in your preferred currency for
Europe, and DM 16,- for all other countries. All orders are shipped via
air mail. If you cannot provide the disks and the envelope, add DM 1,50
per double-density disk or DM 3,- per high-density disk and DM 2,- for
a padded envelope. If you send a check to cover my expenses, please
make sure that the fee I have to pay for cashing it (which currently is
DM 3,-) does not `eat up' the mailing costs.
As of this writing I do not distribute printed copies of the
documentation.
Orders must be made by mail only, not by phone or eMail.
Whenever a new release of `term' becomes available I will try to
make it known in the telecommunications networks.
The most current `term' release will be available through ftp from
all Aminet sites, such as `ftp.wustl.edu [128.252.135.4]'. Look into
the `pub/aminet/comm/term' directory.
`term' is available for download in a number of BBSes. *Careful
please!* For reasons I have always failed to understand certain
individuals take pride in patching program version numbers, copying
archives to disk and compressing them into .DMS files, attach silly
notes to archives or extract single files from archives, just to
recompress and release them later. *Hands off these files!* `term' is
always distributed only in complete LhA-archives, never as a single
program or as a .DMS-file. In addition to this file lists and
signatures generated using the PGP program provide authenticity. If any
of these signs are missing chances are that you have found a corrupted
copy which most likely was not released by me. My public key can be
found in the chapter PGP key (see PGP key).
I will not distribute `term' via eMail, the program is too large to
be mailed and since I am paying both for incoming and outgoing mail it
would also be too expensive for me.
Unless requested, no update notifications will be sent via standard
mail. I recommend that you include an international reply coupon for
each update notification you wish to receive.
The author reserves the right to discontinue development of the
`term' program.
Letters to the author
*********************
It is always nice to receive feedback from users, to hear about
critical comments and enhancement request. If you wish to communicate
with me I suggest that you try electronic mail channels first. As of
this writing there only exists a single Internet address
(`olsen@sourcery.han.de') you can send mail to. I have no Fidonet
accounts or such, in fact I don't even visit any BBSes regularly. If
you need to put a mail through to me and don't have direct Internet
access it is recommended that you use the gateway facilities most nets
offer, your local sysop or postmaster will be able to tell you more. Do
not send mail larger than about 64K bytes, as it may get caught on the
way to me and if it in facts arrives in my mail folder it will have cost
me routing fees since I pay both for my incoming and my outgoing mail.
Please don't expect me to make long-distance calls to your local BBS,
German phone rates are rather steep and I am not that wealthy after all.
If you happen to be registered in a BBS which has no links to any
net or if you don't have any email access at all the only alternative
to dropping by and paying me a visit in person is to use the standard
mail facilities: send a letter, mail a package. Although such mail
will usually arrive safely and unharmed there still is a problem: I am
slow at responding to `real-world mail'. If a letter can be answered
with a few lines of text chances are good for a snappy answer, but if
the topic is a little more complex your letter may go into my mail
service stack. To give you an impression how this stack looks like:
it's a large pile of unanswered mail sitting on my desk which keeps
falling over each time I open the window. Such mail will usually get
answered at the end of the semester or when my bad conscience tells me
to.
Be sure to mention it if you want me to send you an update to `term'
or the most recent version of the program and include some money to
cover my expenses. If you want me to help you or to give advice please
keep in mind that even though there is no denying the fact that I have
written `term' I am by no means an expert in telecommuncations matters.
So if you need to know which modem brand to choose or which Bulgarian
BBSes are worth trying I strongly suggest that you ask someone else.
In any case, feel free to make comments and to ask questions.
Known bugs & problems
*********************
During beta testing certain software did not work very well with
`term' (nothing serious I would say, but you may have a different
opinion). There are also a few problems that would show up at the last
minute (and at great expense) when it was too late to find a fix. Last
but not least the following list also includes a few `features' for
which I was unable to find a better solution.
* With `MagicMenu' running in the background the checkmark and Amiga
symbols overwrite some menu entries.
Older versions of `MagicMenu' do not notice that `term' scales
these symbols to fit the current screen display aspect ratio.
Recent versions of `MagicMenu' address this problem.
* Not all the buttons in the file transfer window do what their
labels say.
The XPR library running the file transfer is responsible for
listening to the commands `term' sends to it when the `Stop entire
transfer', `Skip current file' and `Stop transfer batch' buttons
are pressed. Not all libraries will pay attention to these
commands. So far only `xprkermit.library' responds to all
commands. The `xprzmodem.library' included in the `term'
distribution will ignore the `Stop transfer batch' command. All
other XPR libraries either treat all buttons the same way, i.e.
they stop the transfer no matter which button is pressed, or just
pay attention to the `Stop entire transfer' command.
Frequently asked questions
**************************
This section was written in order to answer the most frequently
asked questions concerning `term'. Although I don't suppose that the
users who this section was intended for will really ready it, but it may
nevertheless still be quite useful. Each entry in the following list
explains why a particular feature works this way or the other and
possibly why.
1. While scrolling `term' quietly swallows characters and sometimes
whole lines.
Usually, `term' cannot process incoming serial data while the
terminal output processing is taking place. If output processing
takes too much time you may end up losing incoming data. There are
several way how to approach this problem. You could reduce the
number of colours used for screen output, or enable the terminal
emulation process via the `Enable emulation process' switch in the
section entitled terminal panel (see Terminal panel).
2. Right after a connection is established the modem hangs up the
line.
Following your configuration options `term' makes sure that the
modem is set up correctly prior to making a call. Does the modem
drop the line right after the `CONNECT' message is received your
modem or the remote modem may reponsible. Not unheard of are
modems which due to firmware trouble fail to negotiate correctly
with the remote modem over the transmission protocol to be used.
With error correction enabled such modems would drop the line right
after establishing the connection. Turning off the error
correction mode would correct this problem. `term' cannot do
anything about the modem behaviour, it is up to you to find the
correct setup.
3. Trying to run the modem at higher baud rates causes the modem to
ignore commands, it does not even echo characters back.
A number of modems respond only to a fixed set of baud rates. While
for example 9,600 bps are fine there is no response at 14,400 bps.
I suggest that you try all available baud rates `term' supports
until one is found to fit. Do not overdo it however, try to keep
the baud rate below 57,600 bps.
4. During file transfers error #6 is reported over and over again.
Data transfer to and from the serial hardware is a time requires
quick responses by the handler routines, this is why interrupt
processing is used for such time-critical jobs. Unfortunately,
these interrupts cannot always be serviced as fast as possible.
Read and write accesses to disk may temporarily slow interrupt
processing down or even disable it in short intervals. If the
send/receive buffers keep flowing over I suggest that you use a
smaller file buffer size, so data gets written to disk in smaller
chunks, making the intervals smaller in which interrupt processing
may be affected. You can change the default file buffer size in
the miscellaneous settings (see Miscellaneous panel). If this
still does not have the desired effect, turn on the switch `Simple
file I/O' (see Miscellaneous panel) and change the buffer size of
the file transfer protocol you are using. Start with a small
buffer size, such as 4,096 bytes and gradually increase it as long
as transfers still work correctly.
5. I have saved the phonebook and the configuration files to disk and
an older `term' release reports that it cannot read them.
`term' stores version information with the configuration files it
saves. Older `term' releases will refuse to read files created by
newer releases. Newer releases will almost always read
configuration files by older `term' releases.
6. I upgraded from an older `term' release, but the program refuses
to read my configuration and phonebook files.
The phonebook and configuration file format was changed and
greatly enhanced with the introduction of `term' 3.1. Older files
need to be converted to the new format, this is what the
`UpdateConfig' program is for that should be included in the
`term' distribution. The conversion is easy, just enter
`UpdateConfig <old file name> <new file name>', the program
automatically determines whether it is reading a configuration or
a phonebook file.
*Caution: the conversion program cannot read encrypted phonebook
files, so they should be saved in unencrypted form first.*
7. In some BBSes ANSI graphics and text output starts at the wrong
screen position, especially after the screen contents are erased.
The so-called BBS-ANSI terminal command set treats the `clear
screen command' different from the VT100 specs, i.e. it expects
the cursor to be reset to the home position. You can enable this
feature using the `CLS' resets cursor position' switch which can
be found in the emulation panel (see Emulation panel).
8. The text buffer window does not show any special characters, such
as accented characters, but only dots (`.').
The text buffer window cannot display characters which fall into
the range between code #127 and code #159. In order to show any
text at all these codes get replaced by the dot character.
9. When I upgraded from an older program release (1.6 - 2.3) to the
new `term' release the program would no longer find all its
configuration files.
In order to annoy you and make things generally irritating some of
the configuration files were renamed in v2.4, and some were moved
to different directories. While the files used to be present in
`ENVARC:term' `term' now looks for them in `TERM:config'. If
`term' finds no `TERM:' assignments, it will create one. If no
`TERM:config' drawer can be found, it will also be created. The
configuration files have been changed as follows:
`Preferences.term'
`term_preferences.iff'
New name is now `term.prefs'
`Phonebook.term'
`term_phonebook.iff'
New name is now `phonebook.prefs'
`Hotkeys.term'
`term_hotkeys.iff'
New name is now `hotkeys.prefs'
`Speech.term'
`term_speech.iff'
New name is now `speech.prefs'
`Macros.term'
`term_macros.iff'
`macros.prefs'
New name is now `functionkeys.prefs'
`Fast!Macros.term'
`term_fastmacros.iff'
New name is now `fastmacros.prefs'
In order to use `term' and `termcap' you need to rename the
`TERMPATH' variable to `TERMCONFIGPATH'. Look into the `ENVARC:'
drawer, rename the file and reboot.
*Caution: it is not sufficient just to rename the file names, you
will also have to take care of the phonebook entries.*
10. I have added several phone numbers to the quick dial menu, but
`term' does not make them all available.
`term' has room for only up to 50 quick dial entries, any further
entries will be ignore.
11. When transferring files between computers connected via null-modem
cables the transfer always aborts immediately complaining that the
DTR or the carrier signal was lost.
During a null-modem transfer there is no carrier or DTR signals
present, only modems and such offer such features. Switch the
handshaking mode to `None' and turn off the `Check carrier' feature
in the serial panel (see Serial panel).
12. The dialer skips two entries at once when pressing the `Skip'
button.
Pressing the `Skip' button stops dialing, most modems will respond
to this with an `OK' message. Some modems will however send `NO
CARRIER', which `term' interpretes the same way as if `BUSY' had
been sent. If this is what your modem does, change the `Treat `NO
CARRIER' as `BUSY'' switch in the Serial panel (see Serial panel).
13. During ZModem file transfers using a fast modem the `CPS' display
first lists an incredibly high value, then drops sharply, followed
by lots and lots of transfer errors occuring.
This is effect is mostly seen if the `Handshaking' mode is not set
to `RTS/CTS' when using a fast modem. The trouble is caused by
data getting sent while the modem has already stopped accepting
new data. It flags this states using the RTS/CTS line.
14. None of my ARexx scripts works any more.
In v3.1 the `term' ARexx interface was rewritten from scratch. If
you wish to retain your old ARexx scripts they will need to be
rewritten.
15. During file transfers errors show up while data is saved to and
read from a hard disk drive.
Some hard disk drive controllers temporarily disable interrupt
processing while accesses take place. In such cases I recommend to
download and upload from the ram disk or to upgrade the hard disk
driver.
16. Even though the speech support feature is enabled, `term' does not
speak a single word.
With the introduction of Workbench 2.1 Commodore ceased to support
the speech synthesizer. If you don't have `narrator.device' and
`translator.library' installed the speech support will not work.
17. When downloading files they don't end up in the right drawer.
The file transfer protocol usually has it's own opinion on where to
place files it receives. This behaviour can be changed by editing
the `term' settings, open the transfer panel (see Transfer panel)
and turn on the `Override transfer path' switch. Now you can
select the names of the directories to store files received in
using the path panel (see Path panel).
18. Sometimes `term' stops processing input and output and just beeps
when a key is hit.
Look at the status line, if it displays `Holding' `term' has
received an `xOFF' character. Press `Control + S' to restart.
19. When I moved my configuration files into a different drawer and
updated my main configuration the phonebook entries started to
`forget' about their settings files.
`term' uses the environment variable `TERMCONFIGPATH' to locate
its configuration files. However, the local phonebook entries may
have different search paths set. Check the paths settings to see
where they are pointing to.
20. Even though several files are selected for transfer only the very
first file is sent.
Not every file transfer protocol supports batch transfers. There
is no way for `term' to tell whether a protocol supports batch
transfers, please consult your protocol documentation for more
information.
21. Even though everything is set up correctly no ARexx scripts are
executed.
In order for ARexx to work the `RexxMast' program needs to be
running. Usually, this program is located in the `System' drawer
of your system partition. Drag it into the `WBStartup' folder in
order to use it at system startup time. Also make sure ARexx knows
where to find your ARexx scripts. Either give a complete path name
or copy your file into the `REXX:' drawer. Do not rely upon an
`Assign REXX: <drawer name> add' call in your `S:User-Startup'
file to work, as of this writing ARexx does not support
multi-volume assignments.
22. Even though the auto-download feature of the current file transfer
protocol is enabled no auto transfer takes place while an ARexx
script is running.
Serial I/O processing only takes place if the main program takes
care of terminal output.
23. Running `term' twice from shell does not cause two `term'
processes to be started, instead only the first program is
reactivated.
By default starting `term' more than once only brings an already
running `term' process to the front. Use the `NEW' keyword to
suppress this feature.
(To be continued)
Reporting bugs
**************
`term' is a rather complex program which is difficult to maintain,
especially since there is only one person to take care of it: me.
Although one tries to write correct, bug-free software, one cannot
always achieve this goal. Tough, but that's life. It rains when you
leave the umbrella at home. Toast falls buttered-side down. The phone
rings while you are in the bath.
In case you come upon one of those nasty features which even the
author was unable to track down and remove, follow these steps:
1. Keep calm. Shouting, cursing, crushing disks may help to cool
your temper, but it will not help anybody (the least yourself!) if
it results in a sudden cardiac infarction: you will have problems
in reporting the problem.
2. Read the documentation! The bug you may want to report may be a
deliberate feature.
3. Repeat previous step as often as possible. Yes, really, do so.
Read the documentation. You will be glad you did.
4. Describe your problem elaborately. A comment like `things fall
down when dropped' may have inspired Sir Isaac Newton, but a
similarly laconic comment `downloads do not work' will most
certainly fail to give any useful hints how to approach the
problem. In case you encounter a problem with the built-in
terminal emulation, try to make a verbatim file capture (i.e. turn
off the `Capture filter') of the session in which the offending
codes were used and send it to me.
5. If you wish to report a bug in the ARexx interface include a
sample ARexx script to produce the bug.
6. Do not forget to write it down! There is a difference between
noticing a bug and reporting it (honestly!). Do not suppose that a
bug will be fixed in a future program revision or rely on anybody
else to report it: do it yourself. Send a letter to the author,
preferably per electronic mailing services. The addresses are
given at the end of this document.
7. State your system and program configuration. It helps a lot to
know on which machine the program caused problems. Please include
information such as memory expansion size, Amiga model (A500+,
A600, A1200, A3000, A4000, etc.), graphics hardware (ECS, AGA,
etc.), CPU type (MC68000, MC68020, MC68030, MC68040, etc.).
If you can please run the standard Commodore debugging tools
(`Enforcer', `Sushi', `tnt', `MungWall', `SegTracker') in the
background and capture the output. If you include `Enforcer' hit
reports make sure that you have `SegTracker' running in the background
or the `Enforcer' output will be worthless to me.
Please direct reports of problems with the file transfer and
terminal emulation libraries to the respective authors, I am not
responsible for maintaining the support libraries.
Error reports concerning the ARexx interface should include a sample
script to illustrate what is going wrong.
Background
**********
This program is a product of anger and despair; I was unable to find
a telecommunications program to suit my personal needs, neither in the
commercial area, nor in the public-domain.
Most programs had a lot of extras but lacked other more important,
perhaps more sensible features (just to take an example: in revision
2.20c and after four years of constant development `Handshake' still
fails to use the current keymap settings and also strips the high order
bit when receiving text - sorry Eric, that's why I never registered!).
I have hesitated for a long time before starting my first attempt at
writing my very own telecommunications program. When Kickstart 2.x was
about to become widely available I took the opportunity to create
`term' always trying to use the new OS routines wherever possible.
While this started to be quite a difficult task it also was a lot of
fun (imagine Columbus wrecking his fleet four times on his journey to
the West Indies due to unexpected leakages in all vessels and sudden
changes in the ships' sailing manuals - that's how I felt!).
As far as computer-telecommunications are concerned, Germany appears
to be a developing country. This is partly due to the Deutsche
Bundespost, the federal mail/phone company whose telecommunications
monopoly used to be protected by federal law. Until 1989 you would
risk a heavy penalty if using a non-registered modem or telephone
instead of the Bundespost-supplied hardware. So, if you have any
complaints or miss a few extremely important features in `term', don't
boo and hiss, I am not as long in the telecomm business as you are (I
have yet seen only a single `DEC VT101' from afar!). Tell me what you
need and I will try to add it in the next revision.
This project was started at December 24 1990 and completed by
January 25 1991.
Future
******
I spent almost five years of my life programming and updating `term'.
Support for new operating system features was added as soon as Commodore
lifted the veil. `term' grew both in functionality and size, it was
difficult to make plans for the path development would follow. While I
have no specific idea which turn development may take in the future
there are a few things I definitely do not want to add:
* FAX support
There are plenty of good commercial FAX solutions available for
the Amiga. I lack both the time and the motivation to add FAX
support to `term'. However, future `term' releases may provide
interfaces to FAX programs.
* More terminal emulations
`term' offers support for the XEM standard, making it possible to
easily add external terminal emulation libraries. If you are
looking for a RIP emulation or a certain Data General terminal
emulation, try to find an external emulation library.
* Script language
`term' supports ARexx, I don't see any reason why I should add
another script language.
* More file transfer protocols
Except for the ASCII transfer routines `term' offers no built-in
file transfer protocols. This is what the XPR interface is for,
external file transfer libraries provide all the file transfer
services. If you need a file transfer protocol, look for an
external transfer protocol library.
* Reduced functionality
It was `tough' enough to implement all the features, bits & pieces
that make up `term'. Honestly, I don't have the heart to cut back
features. It would not have been the first attempt to make `term'
smaller either; there have been numerous attempts to create
programs to copy the functionality of `term' or to build a
smaller, scaled down terminal program based upon the `term' source
code. As far as I know none of these attempts was successful.
It is difficult to judge how the next `term' release will look like.
Also, v4.5 may be the last `term' release, but then again maybe not.
The future of `term' depends on its users, and this includes you.
Acknowledgements
****************
My thanks go to the following people for their invaluable help and
assistance: Andreas Kirchwitz, Christoph Teuber, Christopher Wichura,
Garry Glendown, Germar Morgenthaler, Henning Hucke, Holger Lubitz,
Juergen Otte, Marc-Christian Schroer, Marko Kuechmann, Markus Stoll,
Martin Berndt, Martin Taillefer, Matthias Zepf, Michael Vaeth,
Michael-Wolfgang Hohmann, Oliver Wagner, Peter Fischer, Ralf Thanner,
Ralph Schmidt, Roby Leemann & AUGS, Stefan Becker, Thorsten Seidel,
Till `Dill-Prince' Prinzler, Udo Wolt, Ueli Kaufmann, Veith
Schoergenhummer, Volker Ulle & the Aquila Sysop Team and to all those
who supplied libraries & control sequence tables.
Special thanks go to John Burton of Papua New Guinea who revised and
rewrote certain parts of the program, in particular the terminal
emulation routines, Leo Schwab who discovered means to use interleaved
screen bitmaps in a system-integrated manner and to Nicola Salmoria
whose invaluable assistance helped to reduce the incredible number of
bugs lurking in the source code.
Additional user interface wizardry and advice by Martin Taillefer.
The file transfer section of this manual was rewritten to incorporate
several suggestions made by Mike Safer.
The `Technical Reference for Hayes Modem Users' was supplied by
Maxwell Daymon, thanks much.
The XPR libraries were created by Terence Finney (`bplus'), Marco
Papa & Stephen Walton (`kermit'), Jack Rouse (`quickb'), Marc Boucher
(`xmodem'), Ueli Kaufmann (`ascii', `ymodem' & `vms') and Rick Huebner
& William M. Perkins (`zmodem').
The XPR standard was created by Willy Langeveld, the quicksort
routine (`QuickSort.asm') was written by David Jones.
The current implementation of the external terminal emulation
library interface was developed by Ueli Kaufmann, who also wrote the
external terminal emulation libraries supplied with `term'. Without
the invaluable help of Martin Berndt the library interface would
probably not be working at all.
Since time did not permit me to translate the full original German
documentation into English, I had asked the Z-Net Amiga community for
help. As a result this document was translated by three different
authors (in order of translation): me, Marc Schroer and Henning Hucke.
Garry Glendown took care of the original termRexx documentation -
thanks to all of you!
The beta tester group, consisting of Abdelkader Benbachir, Alfredo
Rojas, Andreas M. Kirchwitz, Bernd Ernesti, Bob Maple, Bodo Thevissen,
Chris Hanson, Chris Mattingly, Christoph Guelicher, Christopher G.
Newby, Christian Hechelmann, Dabe Murphy, Daniel M. Makovec, Dean S.
Pemberton, Eric W. Sommer, Florian Hinzmann, Frank Duerring, Gary B.
Standen, Gregory A. Chance, Holger Heinrich, Holger Lubitz, Hung-Tung
Hsu, Jason C. Leach, Jason Soukeras, Jay Grizzard, Joel E. Swan,
Jonathan Tew, Juergen Zeschky, Julian Matthew, Kai Iske, Karsten
Rother, Kay Gehrke, Keith A Stewart, Keith Christopher, Kenneth
Fribert, Klaus Duerr, Leon D. Shaner, Marcel Doering, Mark Constable,
Martin Berndt, Matthias Merkel, Matthias Scheler, Matti Rintala,
Michael Zielesny, Olaf Peters, Ottmar Roehrig, Peer Hasselmeyer, Peter
L. Banville Jr., Piotr Kaminski, Robert L. Shady, Robert Reiswig,
Rodney Hester, Russell John LeBar, Sebastian Delmont, Stefan Becker,
Stefan Gybas, Stefan Hudson, Stellan Klebom, Steve Corder, Sven Reger,
Tony Kirkland, William Michael Mushkin and Yves Perrenoud, took care of
testing the program - thank you very, very much!
Source code
***********
Since there are still only very few well-documented examples (or
general programming examples) for Kickstart 2.x and Kickstart 3.x I
have decided to include the full `C' source code with the `term'
distribution.
The source code is *not* intended for commercial use. If you are
about to include portions in commercial programs you will need to ask
me for permission. Still you may use parts of the source code for
non-commercial software development without my consent.
I sincerely hope that the release of the full `term' source code
will give Kickstart 2.x a better start (I've overcome quite a lot of
obstacles) so that more programs to use the new OS features will be
available soon.
Documentation and online help
*****************************
`term' comes bundled with a number of documentation files, these are:
`term.doc'
Human-readable english program documentation in standard ASCII
format.
`term.guide'
English program documentation in AmigaGuide format suitable to
submit to `AmigaGuide' or `MultiView'.
`termRexx.doc'
Human-readable english `term' ARexx interface documentation in
standard ASCII format. This file describes all the ARexx host
commands `term' supports and also gives a brief introduction how
to use them.
`termRexx.guide'
English ARexx interface documentation in AmigaGuide format
suitable to submit to `AmigaGuide' or `MultiView'.
`xprascii.doc ... xprzmodem.doc'
Human-readable documentation on the XPR transfer libraries
supplied with `term'.
In addition to the pure ASCII files documentation files are
available in TeX-DVI format and Postscript. As space requirements do
not permit to include them on the distribution disks they are only
available directly from the author.
`term.dvi'
English program documentation in a format suitable for printing
using a utility to print TeX-DVI-output files, such as supplied
with the packages AmigaTeX or PasTeX.
`term.ps'
English program documentation in Postscript format. This file was
generated from `term.dvi' using the `dvips' utility.
`termRexx.dvi'
English ARexx interface documentation in a format suitable to
printing using a utility to print TeX-DVI-output files, such as
supplied with the packages AmigaTeX or PasTeX.
`termRexx.ps'
English ARexx interface documentation in Postscript format. This
file was generated from `termRexx.dvi' using the `dvips' utility.
In order to take advantage of the online-help feature, AmigaGuide
and the file `term.guide' are required. Copy the file to the drawer the
`term' main program is located in and configure the ``term' help text
file' settings (see Path panel) to point to `PROGDIR:term.guide'. Once
this has been done, pressing the `Help' key in any window to support
online help will bring up a help window.
Foreign language support
************************
`term' supports foreign language text catalog tables as introduced
with Workbench 2.1 `locale.library'. As of this writing there are
Danish, Dutch, French, German, Italian, Spanish and Swedish
translations of the program text available. If you wish to create your
own national translation table you should consult the program source
code file `term-blank.ct' which is a blank translation table. Before
actually starting to fill in the translation table you should contact
me first; there may already be someone preparing a translation.
However, you should keep in mind that once you have created a foreign
language translation of the program text I may ask you to update your
translation for a future program release.
Once you are finished with the translation table, send it to me on
disk or via eMail, *don't compile the catalog on your own!*.
Workbench and Shell
*******************
The program can be started both from Workbench and from Shell.
Kickstart 2.04 (revision 37.175) and Workbench 2.04 (revision 37.67)
are the minimum required to run `term'.
The `behaviour' of `term' can be changed by adding tool type entries
to the corresponding Workbench icon or by specifying additional command
line parameters when running the program from the Shell. Supported
keywords are:
`WINDOW'
The console window specifier to be used when opening terminal
output windows (this will override the default settings). The
default is `CON:0/11//100/term Output Window/CLOSE/SCREEN %s'. The
`%s' will be replaced by the name of the public screen `term' uses.
`PUBSCREEN'
The name of a public screen to open the `term' window on. In case
the public screen happens to be unavailable, `term' will fall back
to the Workbench screen. Note that `term' assumes that the main
window is to be opened on a public screen rather than on a custom
screen if this option is in effect, regardless how the default
settings may be configured.
`STARTUP'
The name of an ARexx script file to be run on program startup.
`PORTNAME'
The ARexx host port name `term' is to use instead of the built-in
default name. The port name will be translated to upper case
characters as required by the ARexx host port naming convention.
The resulting name must be unique or `term' will fall back to its
built-in default name.
`SETTINGS'
This keyword determines where to read the default configuration
file from. In order to read it from `Work:term/config', one would
use `term Settings Work:term/config' from Shell or add the tooltype
entry `SETTINGS=Work:term/config' from Workbench. This argument
does not necessarily need give the name of a path to search, but
can also specify the name of the configuration file to be used.
`UNIT'
Similar to the `DEVICE' keyword the `UNIT' keywords affects the
serial driver settings. It determines which serial driver unit is
to be used instead of the one specified in the default
configuration file. In order to use unit number 4 one would use
`term Unit 4' from Shell or add the tooltype entry `UNIT=4' from
Workbench.
`DEVICE'
In order to use a different serial device driver than the one
specified in the default configuration file, use this keyword. To
use `duart.device' one would use `term Device duart.device' from
Shell or add the tooltype entry `DEVICE=duart.device' from
Workbench.
`QUIET'
If this parameter is present, the program will not start opening a
display but rather put an icon on the Workbench backdrop, waiting
to be invoked. A double-click will bring it to life. This
parameter will be ignored in case the `STARTUP'-Parameter is used
along with it.
`SYNC (Shell only)'
If called from Shell `term' will detach itself immediately
allowing the Shell window to be closed afterwards. This effect can
be avoided if `SYNC' is entered in the command line.
`NEW (Shell only)'
Usually, running `term' twice will cause the screen of the other
program to be popped to the front instead of creating a second
`term' process. To avoid this effect, enter `NEW' as a calling
parameter. If called from Workbench, each program will run as a
separate process.
`BEHIND'
This option will cause `term' to open its screen behind all other
screens and not to activate its window.
`PHONEBOOK'
Similiar to the `SETTINGS' option you can specify the name of a
phonebook file to load upon startup.
`AUTODIAL'
`AUTOEXIT'
These two options are used in conjunction with the Auto-Dial and
Auto-Exit features. Even if the phonebook does not have these
options enabled, you can nevertheless tell `term' to enable them
as soon as the phonebook file is loaded. It will then go through
the routine setups for auto-dialing. Fore more information on these
features see Phonebook.
User interface notes
********************
To operate a gadget, press the key corresponding to the letter
highlighted in the gadget label. Suppose a slider is labeled `Baud
rate' with the letter `r' of the word `rate' underlined; in order to
increase the slider value one had to hit the key labeled `R', to
decrease the value one is to hold down either `Shift' key while
pressing the key `R'.
With some requesters and windows text gadgets will be
auto-activated. Pressing the `Return' key will cycle through all the
available text gadgets, holding down either `Shift' key will break the
cycle.
Windows in which only a single scrolling list is present cursor keys
may be used to scroll the contents.
The `Return' and `Escape' keys are respected by most windows. A
button surrounded by a recessed box represents the default choice in a
requester, pressing the `Return' key will select it. The `Escape' key
always selects the `stop' or `cancel' button usually to be found in the
lower right corner of a window. Most windows to feature a close gadget
in the upper left corner can be closed by pressing the `Escape' key.
In control panels featuring a `Tab' button, pressing the `Tab' key
will flip the pages.
Numeric entry fields accept input several notations, namely
hexadecimal (`$..' and `0x..'), octal (`&..') and binary (`%..').
The user interface support library tries to make all control panel
windows fit on the screen. If the first attempt fails a different font
is used. If this did not help either a new screen will be opened for
the window. This screen will usually be larger than the visible region.
Move the mouse towards the borders of the screen to reveal more of it.
Screen
******
At the bottom of the `term' screen or window a small display shows a
few basic parameters. These are:
`Status'
The current program operating status. This includes `Ready',
`Holding' (`Control + S' was pressed), `Dialing' (the dialing
function is at work), `Upload' (data is being sent), `Download'
(data is being received), `Breaking' (a break signal is
transmitted across the serial line), `Hanging up' (connection is
being cancelled), `Recording' (a script is being recorded) and
`Rec.line' (a line of text is being recorded).
`Buffer'
Indicates whether the text buffer is currently recording incoming
text or whether the current text buffer contents are frozen.
`Protocol'
The currently selected data transfer protocol.
`Emulation'
The currently active terminal emulation mode.
`Rate'
The data transfer rate in bits per second (= Baud).
`Params.'
The current serial parameters (Data bits-Parity-Stop bits).
`Time'
The current time of day.
`Online'
The time elapsed after a connection was successfully established.
This counter will be stopped as soon as the connection is
cancelled (e.g. by hanging up) and is reset to 00:00:00 as soon as
a new connection is made.
This display will show the online time, the online cost or both
(toggled every five seconds) depending on your current settings.
Unless configured different, the screen itself is opened as a public
screen (called `TERM') which is available to other programs for their
purposes. If more than one `term' process is running, the public screen
name will change according to the number of the program (i.e. the first
`term' to be started will call the scren `TERM', the second one will
call it `TERM.1', the third one `TERM.2', etc.). The screen title bar
will also display the name of the public screen.
Menus
*****
For each requester and input window there exists a set of menu items
to execute the commands associated with the buttons, dials and gauges in
the requester/window. Press the right mouse button to have a look at
the commands and their shortcuts.
The following text is to describe the menu items available in the
`term' main menu.
Project
=======
`Save screen as Picture/Text'
This menu serves to save the current terminal window contents
either as plain ASCII text file or as a picture file.
`Print Screen (as text)/Clipboard'
These menu entries are to output plain text on the printer. You
can either print the contents of the main screen or the contents
of the clipboard.
`Print Screen (as graphics)'
Select this menu entry to make a hardcopy of the screen contents.
Printing will respect screen colours and follow the on-screen bit
image.
`Capture to File/Raw file/Printer'
Selecting one of these menu entries will toggle capturing incoming
text to the printer and/or a file on disk. The `Raw file' option
will capture incoming text without applying any filtering or
modifications. You can get the same effect by turning off the
`Capture filter' in the capture settings (see Capture panel) and
selecting the `Capture to file' option, but probably not as
quickly.
`Iconify'
Closes all screens and windows `term' has currently open, if this
feature is enabled, resets and releases the serial driver and puts
an icon into the Workbench window. Double-clicking this icon will
cause `term' to wake up and to return the state is was in before
iconification took place.
*While `term' is iconified, most incoming ARexx-commands will be
queued and the corresponding ARexx scripts will appear to `hang'.
In order to reactivate the program either double-click on the
program icon or send the ARexx command `ACTIVATE'. As soon as
`term' is `awake' again pending commands will be processed again*
`About'
Shows some information on the program.
`Quit'
Terminates the program, hold down a `Shift' key to quit
immediately, otherwise you will be prompted to confirm your
decision.
Edit
====
`Copy'
In order to transfer any currently marked screen text to the
clipboard buffer, select this menu item. Text can be marked by
double-clicking the select button while the mouse is over a word
or by clicking the select button and dragging the mouse. Holding
down either shift key will append the selected text to the current
clipboard contents. In any other case the new text will replace
the previous contents.
`Paste'
Pastes the contents of the clipboard at the current cursor position
provided that the clipboard contains text data. Hold down either
`Shift' key to have `term' include the `Paste prefix' and the
`Paste suffix' (see Clipboard panel) along with the clipboard
contents.
`Clear'
Any currently marked text will be released as soon as any rendering
operations are to be executed in the main window. To release marked
text manually, select this menu item.
Cmds. (= Commands)
==================
`Execute AmigaDOS command'
Enter the command you want to execute and its command line
arguments here.
`Execute ARexx command'
This function calls the ARexx server to execute a script file. If
the first input character is a ` or " the input will be considered
as a small program in a single line. Note that this function will
not be available if the ARexx server isn't running.
The ARexx command set supported by `term' is described in the
`term' ARexx interface documentation.
`Record script'
Select this menu item to start/stop script recording. More on
script recording can be found under script recording (see Script
recording).
`Record line'
When in script recording mode this menu item will cause `term' to
temporarily switch into full line recording mode, rather than
recording only single keystrokes. Pressing the `shift+return' keys
has the same effect as calling the `Record line' menu item. More
on the topic of script recording can be found under script
recording (see Script recording).
`Edit traps...'
This brings up the trap list editor (see Trap panel. The list
includes control sequences `term' is to look for in the incoming
data stream. When a sequence is found the corresponding command
sequence (see Command sequences) is executed.
The window contains the usual list management tools (edit, add,
remove, clear and move). Please note that the order of processing
occurs top-down, i.e. of two entries with the same control
sequence data only the top-most will be evaluated.
The buttons `Load' and `Save' will let you restore and save the
current trap list. The `Load' button appends the contents of a
trap list file to the current trap list, so take care. On startup
`term' looks for a configuration file named `trap.prefs' and tries
to load it. Thus, there can be only one global trap list. It is up
to ARexx to load and modify the contents of the trap list,
although this editor window provides a graphical interface to the
list. Please note that the more list entries `term' has to filter
through the input data stream the slower input processing may
become, affecting mostly terminal output.
`Disable traps'
This menu item provides a shortcut to stop trap list processing.
On startup `term' will enable trap list processing if the trap
list loaded from disk is non-empty.
Phone
=====
`Phonebook'
The phonebook is one of the most powerful and complex functions of
`term' and will be described later in this document (see
Phonebook).
`Redial'
Dialing list entries which the dialing routine was unable to
establish a connection to are once again passed to the dialer.
`Dial phone number'
To dial a single phone number select this menu item. The phone
number entered will be passed to the dialing routine.
`Send break'
Sends a `break' signal across the serial line.
`Hang up'
Tells the modem to hang up the serial line.
`Wait'
Will cause `term' to emit the character sequence `<Blank
space><Backspace>' every second in order to fool the remote into
believing that terminal input is currently taking place.
`Flush receive buffer'
Tells the serial driver to drop its input buffer contents and
resets the state of the internal serial buffers.
`Release serial device'
The serial driver is released for other programs to use it. A
requester will appear which allows you to reopen the serial driver
or to quit `term'.
If the serial driver has been released by the ARexx interface and
has not been reopened yet, this menu item will do it.
If you are still online, the `Redial' and `Dial' menu entries will be
disabled. In order to make another call, hang up the line first.
Transf. (= Transfer)
====================
This menu provides access to file transfer functions. For more
information on this topic, see Transfer panel, XPR options sample,
Transfer progress panel, ASCII-transfer panel and ASCII-transfer
settings.
`Upload ASCII file(s)'
This is a pure ASCII-file upload. It was added to allow poor BBS
programs to receive text files.
`Download ASCII file(s)'
This is a pure ASCII-file download. Refer to `Upload ASCII
file(s)' for features/options of this mode.
`Upload text file(s)'
Sends a file/files to the remote receiver using the current
transfer protocol. If possible this command will `ask' the
transfer protocol to transmit the file(s) in text mode (whatever
that means) which may include CR/LF substitution and other
gimmicks. Consult the library documentation to find out if your
favourite transfer library supports text mode.
`Download text file(s)'
Request a file/files using the current transfer protocol. Refer to
`Upload text file(s)' for features/options of this mode.
`Edit & upload text file'
Invokes the currently selected (see Path panel) text editor on a
file to be selected using a file requester. `term' pays attention
to the `EDITOR' environment variable and will use the program
indicated by it.
`term' will block and wait until the editor has returned.
After the editor has returned, the user will be asked whether the
file edited is to be transferred as plain ASCII or via text upload.
`Upload binary file(s)'
Send a file/files to the remote receiver using the current transfer
protocol. True batch upload is supported both through wildcard
expressions (`#?.txt' will send all files whose names end with
`.txt') or through multiple selection. Refer to the documentation
of your favourite transfer library to find out if batch file
transfer is supported.
`Download binary file(s)'
Receive a file/files using the current transfer protocol. If the
protocol does not support batch download you are required to enter
the name of the file to be received. Files which remain empty
after the transfer are deleted automatically.
The transfer routines open an information window in which a number of
transfer parameters are displayed (see Transfer progress panel).
Buffer
======
`Clear buffer'
Clears the contents of the text buffer (see Text buffer). Any text
will be discarded and *cannot* be recovered. Capture files are not
affected by this command.
`Display buffer'
Opens the text buffer screen (see Text buffer).
`Close buffer'
Closes the text buffer screen but does not free the contents.
`Freeze buffer'
This menu entry will, if enabled, stop the text buffer from
filling up with new text.
`Load buffer'
Loads the contents of the text buffer from a file. If there are
still text lines in the text buffer a requester will appear giving
you the choice to discard the old data, append the new data, or to
cancel the action.
`Save buffer as'
Saves the contents of the text buffer to a file. You will be
notified if the file to save to already exists (you may discard
the old file, append the new data or cancel the action).
Terminal
========
`Clear screen'
Clears the whole `term' screen and moves the cursor to the top
left home position.
`Reset font'
Will change the screen font back to the default screen font.
`Reset styles'
Resets all character style attributes (bold, blinking, inverse
video, underlined, etc.) and sets the text colour to the default
pen.
`Reset terminal'
Use this menu item to reset the state of the entire terminal
emulation.
Settings
========
This is where you configure the standard preferences settings. If
you select `New' in the phonebook window (see Phonebook) these standard
settings will be used. Put in your most commonly used settings here.
Change individual entries in the phonebook as needed.
`Serial'
See Serial panel
`Modem'
See Modem panel.
`Screen'
See Screen panel.
`Terminal'
See Terminal panel.
`Emulation'
See Emulation panel.
`Clipboard'
See Clipboard panel.
`Capture'
See Capture panel.
`Commands'
See Command panel.
`Miscellaneous'
See Miscellaneous panel.
`Paths'
See Path panel.
`Transfer protocols'
See Transfer panel.
`Default transfer protocol'
If this item is selected, a transfer settings editor is displayed.
The `Default transfer library' in the transfer panel (see Transfer
panel) determines the contents of this control panel. If the
selected default transfer library does not provide these
facilities, a simple text requester will prompt for input. Consult
the documentation of the chosen transfer protocol for legal
options and the values to which they can be set.
As an example, see XPR options sample.
`Translation tables'
See Translation panel.
`Function keys'
See Function key panel.
`Fast! macros'
See Fast macro panel.
`Hotkeys'
See Hotkey panel.
`Speech'
See Speech panel.
`Sound'
See Sound panel.
`Area codes'
See Area code panel.
`Console window...'
Whenever an AmigaDOS/ARexx command is executed an output window is
opened. This menu item will bring up a requester allowing you to
edit the size and position of the window to be opened (consult
your AmigaDOS manual for a description of the window position
string). If you do not want the window to appear, simply enter
`NIL:'. If the `%s' formatting parameter is used in the output
specification it will be replaced by the name of the public screen
`term' uses.
Windows
=======
`Status'
This function opens a window to display program status information.
A click on the `Update' button will cause the information to be
brought up to date:
`Session start'
When was the program started?
`Bytes received'
The number of bytes received.
`Bytes sent'
The number of bytes sent.
`Connection message'
The text returned by the modem when a connection was made
immediately following the `CONNECT' message.
`Name'
If available, the name of the system the modem is currently
connected to.
`Phone number'
If available, the phone number of the system the modem is
currently connected to.
`Comment'
If available, the phonebook comment corresponding to the
system the modem is currently connected to.
`User name'
If available, the user name, as available through the
phonebook, corresponding to the system the modem is currently
connected to.
`Screen size'
The size of the terminal output window in characters (columns
and rows).
`ARexx port name'
The name of the ARexx host `term' is currently using.
`Buffer size (bytes)'
The size of the text buffer (see Text buffer).
`Free memory (bytes)'
The amount of free system memory.
`Review'
A review window is opened which basically displays the same text
as the text buffer screen. You can scroll through the text
displayed both by mouse (see the right hand side scroller) and by
cursor keys.
`Packet'
Opens an input window in which a single line of characters to be
transferred across the serial line can be entered. More on this
feature is explained below (see Packet window).
`Chat line'
This adds a one-line text entry field just above the status line
(or the bottom of the main window, whatever is available at the
moment). For more information, see Chat line.
`Fast! macros'
Opens or closes the so-called fast macro panel (see Fast macro
panel). For more information on fast! macros see Fast! macros.
`Single character entry'
This may come in handy for serial debugging and those rare cases
when there is no keyboard connected to the Amiga. On a 16 by 16
raster layout you will find every single character of the
ISO-8859-1 set the Amiga uses. Click on any one to have it
transmitted across the serial line. Hold down the left mouse
button and drag the mouse across the matrix to see the character
code displayed in the window title bar in various notations. Note
that with small fonts the binary notation may be cut off.
`Upload queue'
This will open a window featuring a list of files to upload. You
can drag icons of files to upload on this window, their names will
appear in the list. Dragging icons on the icon labeled `term
Upload queue' has the same effect. Double-clicking this icon will
open the upload list window on the Workbench screen. In order to
start an upload either press the `Binary upload' or `Text upload'
button.
You can replace the icon `term' uses by copying the icon of your
choice into the drawer `term' resides in and naming it
`term_DropIcon'.
For more information on the Upload queue see File upload panel.
The quick dialing menu
======================
Note: this menu is available only in case any phonebook entries have
the special `Quick menu' switch set.
Selecting any item of this menu will cause the corresponding phone
number to be dialled. Extended selection and drag-selection are also
available when picking services to dial. Please note that you can
`check in' single items by selecting them, but you cannot remove any
items from the dial list.
Phonebook entries in groups appear in submenus, unless there is only
one group all entries for the quick dialing menu reside in. In this
case, there will be no single submenu, all entries will appear in one
regular menu.
Control panels
**************
This where all the control panels employed by `term' are explained:
Serial panel
============
This is where the serial parameters may be changed.
`Baud rate'
The transfer speed in bits per second at which `term' communicates
with the serial hardware. The minimum value allowed is 110 baud.
You may enter any value you like but keep in mind that not all
modems will respond to all possible settings. Clicking on the
arrows pointing to the left and to the right will cycle through a
set of predefined rates.
As of this writing the standard Amiga serial hardware is capable
of running baud rates from 110 up to and including 1,000,000 bits
per second. These are the basic hardware limits, but in practice
reliable transfer speeds are far lower at 57,600 baud and below.
Custom serial hardware may support higher transfer rates. Do not
underestimate the overhead caused by the terminal program &
interrupt processing and the effects of connecting cable lengths.
Most modems will not recognize a sudden change in the baud rate.
Type `AT<RETURN>' to make the change known.
With data transfer speed greater than 2,400 baud most modems
require flow control to be used in order to guarantee reliable
data transfer. In such cases it is recommended to set the
`Protocol' switch to `RTS/CTS'. If you fail to do so you may lose
data.
`Bits/char'
Number of bits per transferred character (7 or 8). As of this
writing the Amiga serial hardware does not support all possible
bits/char, parity and stop bits combinations.
`Parity'
Serial parity (none, odd, even, mark or space). As of this writing
the Amiga serial hardware does not support all possible bits/char,
parity and stop bits combinations.
`Stop bits'
Number of stop bits (1 or 2). As of this writing the Amiga serial
hardware does not support all possible bits/char, parity and stop
bits combinations.
`Handshaking'
Serial handshaking mode (RTS/CTS 7 wire hardware handshaking,
RTS/CTS with DSR signal check, none). The `RTS/CTS (DSR)' mode
will make `term' check the `data set ready' signal first before
turning on RTS/CTS handshaking. If no signal is present `term'
will turn off RTS/CTS 7 wire hardware handshaking.
Some modems will appear to `lock up' when the RTS/CTS handshaking
protocol is enabled. This may either be due to a faulty connecting
cable (not all cables properly connect the pins required for 7
wire hardware handshaking) or due to configuration problems. Some
modems factory settings are incompatible with the way the Amiga
handles hardware handshaking. In such a case it is very likely that
the modem does not set the so-called DSR signal by default. To
change this, first turn off RTS/CTS handshaking, then type the
command `AT&S0' and press return, now turn RTS/CTS handshaking on
again.
*The RTS/CTS handshaking protocol must be used for reliable modem
connections using transmission speeds of 4,800 baud and above.*
`Duplex'
Determines whether characters are echoed back to the terminal
screen or not (full, half = local echo).
`Buffer size'
The number to be specified here allows to set the serial driver I/O
buffer size. *Every number you enter here will result in `term'
and the serial driver allocating twice the buffer size (this is
only a word of warning for those among us who prefer buffer sizes
of 256K and up).*
`Break length'
Length of the break signal given in microseconds.
`High-speed mode'
Activates a special mode of the serial driver which is to skip a
couple of internal parity and stop bits checks resulting in higher
data throughput rate. *If this switch is turned on, the serial
parameters will be reset to 8 bits per character, no parity and 1
stop bit.* Do not expect dramatic speed increases.
`Strip bit 8'
If this switch is effect each character received or transmitted by
`term' will have its high-order bit cleared.
`Shared access'
This switch allows you to run the serial driver in shared access
mode. Not all driver types will allow this to happen.
`Handle xON/xOFF internally'
This switch enables the internal processing of the flow-control
characters `xON' (= `Control + S') and `xOFF' (= `Control + Q').
Whenever you press `Control + S' `term' will change its state to
`holding' and stop terminal input and output processing. Press
`Control + Q' in order to restart.
`Pass xON/xOFF through'
If this switch is enabled, `term' will pass the `xON'/`xOFF'
characters through to the modem rather than quietly discarding
them.
`Check carrier'
`term' will recognize the `NO CARRIER' message a modem emits when
the carrier line signal drops back to low. For maximum safety,
`term' will also check the carrier signal line after receiving the
`NO CARRIER' message if this switch is enabled. This is to make
sure that no accidentally appearing text causes confusion.
If this switch is enabled, `term' will check the carrier signal
during file transfers and will stop the transfer if the signal is
lost. It will also check the carrier signal at program startup and
if the signal is detected will start the online timer. If offline,
`term' will check the carrier signal periodically and go into
online state if the signal is detected.
*Note: Be sure to switch the carrier detect check off in case you
wish to transfer files using a null-modem cable!*
`Direct connection'
You can directly connect the Amiga to other computers, such as by
using a nullmodem cable. In such a case it does not make good
sense to enforce a carrier signal check or to warn you if the
transmission speed requires that you enable RTS/CTS handshaking.
This switch disables both features.
`Quantum'
The number of bytes `term' tries to read in one chunk at a time.
The more bytes read, the more time it takes to process them. While
the text is processed, mouse and keyboard input are delayed.
Choose this value with care.
`Use OwnDevUnit'
This switch controls whether Christopher Wichura's
`OwnDevUnit.library' will be used to schedule access of multiple
programs to the currently selected serial device driver.
`Do not use if device is in shared mode'
It may not be a good idea to lock the device driver for exclusive
access through OwnDevUnit.library while `term' is trying to share
the driver with other applications in non-exclusive mode. For such
cases, enable this switch.
`Release device when online'
This option is potentially dangerous. By default `term' will yield
control over the serial device driver only if offline, i.e. if no
carrier signal is detected, etc. With this switch enabled `term'
will let go of the device driver even if a connection is active
and you are online. This may cause the device driver to drop the
line, you have been warned.
`Release device when dialing'
If your uucp netcall catches you off guard while `term' is still
dialing, here is your chance to give the netcall precedence.
Please note that although `term' will exit the dialing procedure
as quickly as possible and yield control over the serial device
driver, it will not automatically start to redial when the device
driver becomes available again.
`Satisfy requests'
When a program requests access to the serial device driver, `term'
is supposed to let go of the driver if possible. This switch
controls what `term' will do in this case:
`Release device'
The driver is released, just as if you would select the main
menu item of the same name.
`Release device, attempt to reown'
The device driver is released, but `term' will retry every
four seconds to reopen and thus `reown' it again.
`Keep device open'
`term' always ignores requests to release the device driver.
`Serial device'
The name of the serial driver to be used by `term'. This is usually
`serial.device' (`modem0.device' for the internal Supra modem,
`sxbios.device' for ASDG's serial IO card, `vectorser.device' for
the VectorConnection card, `duart.device' for the MultiFaceCard,
etc.; consult your hardware manual for more information).
`Device unit number'
The device unit number of the serial driver selected above. This is
usually left `0' but can also be used to address multiple serial IO
ports.
`Use'
Accept the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Don't use the current settings.
Modem panel
===========
This is where modem control text and other related parameters are
configured.
`Modem initialization command'
The text to send to the modem after successful program
initialization. This text is optional and thus does not need to
be present.
The default modem initialization command `term' uses is
`ATE1V1Q0\\r' which will do the following with a modem that
complies to the Hayes Standard AT Command Set Specification:
1. [E1] Command state character echo is enabled, so the modem
echoes back every character you send to it until it makes a
connection.
2. [V1] Result codes are displayed as words, so the modem will
respond with messages such as `CONNECT', `NO CARRIER', etc.
rather than numeric codes.
3. [Q0] Result codes are enabled, so that the modem will send a
response to any command it receives.
For more information on these commands, consult your modem manual.
The dialing routine will use the initialization text entered here
before dialing a phone number. You can separate multiple
initialization commands with vertical bar (`|') characters. Only
the dialer will use them.
`Modem exit command'
The text to be sent to the modem shortly before the program
terminates. Just like the modem init text it is optional and does
not need to be present.
There is no default exit command `term' uses.
The dialing routine will use the initialization text entered here
before dialing the next telephone number.
The dialing routine will use the exit text entered here before
dialing a phone number. You can separate multiple exit commands
with vertical bar (`|') characters. Only the dialer will use them.
`Hang up command'
The text to be sent to the modem when asked to hang up the line.
This text does have to be present if the `Drop DTR on hangup'
switch is enabled.
By default `term' uses the following hang up command:
`~~~~+++~~~~ATH0\\r'. This will cause `term' to wait exactly two
seconds, to transmit the +++ escape sequence, wait another two
seconds and eventually transmit the hangup-command. The small
delay before and after the escape sequence is necessary to put the
modem into command state. The tilde characters are part of a set
of special characters `term' uses, these do not get sent through
to the modem. Specifically, each tilde character causes `term' to
wait for half a second. For more information on the command
sequences the tilde character belongs to see Command sequences.
`Do not send modem init/exit commands.'
You may have placed special commands in the init/exit text fields
that should be executed only when starting and terminating `term'.
Still chances are that these will also get executed when the
phonebook dialer dials the selected phonebook items unless you
enable this switch.
`Command character send delay'
You will only rarely use this feature. Some of the more modern
high-speed modems with rather unreliable firmware which support
baud rates of 28,800 bps and up cannot quite make sense of modem
initialization and dialing commands if sent at this speed.
However, small delays between the single characters sent to the
modem can help. Just set the number of microseconds to wait here.
``No carrier' message'
The message the modem emits if the data carrier is lost. The
program uses this to determine the length of the connection and to
calculate how much the user is to pay for it.
``No dialtone' message'
The message to be returned by the modem in case it does not detect
any dialing tone on the phone line.
``Connect' message'
The message the modem emits after detecting a carrier signal.
`term' uses this input to determine successful telephone
connection, to reconfigure itself and to start the online timer.
``Voice' message'
The message `term' is expected to receive if the modem detects a
voice call. If in dialing mode, `term' will stop the process. The
user will in any case be notified of the event.
``Ring' message'
The message the modem emits if it receives a call, same effects as
with the `Voice' message.
``Busy' message'
The message the modem returns if the number which has just been
dialed is busy.
``Ok' message'
The message the modem returns if a command was successfully
executed.
``Error' message'
The message the modem returns if a command was not to be executed
successfully.
`Dial command prefix'
The text to be used to prefix each dialing command. By default
`term' uses `ATD\\w' as the prefix. This command contains the
special escape sequence `\\w' `term' will expand to either `T' or
`P', depending on what the `Dial mode' switch is set to.
`Dial command suffix'
The text to be used to append to each dialing command. This is
usually the carriage-return character `\\r'.
`Dial mode'
This switch affects whether dialing commands will use touch tone or
pulse dialing. Touch tone dialing usually is quite a bit faster
than pulse dialing, but not all phone networks support it. This
switch requires that either the dial prefix or dial suffix commands
include the `\\W' command sequence (see Command sequences). By
default `term' will use pulse dialing.
`PBX dial command'
If you are dialing out through a PBX you may need to dial an extra
number and wait a bit before dialing the rest of the phone number.
Enter the extra number and any other special modem control
characters here. By default `term' will use `0,,,' as the PBX dial
command. If enabled, this dial command is put between the `Dial
prefix', the phone number to dial and the `Dial suffix'. The
default command first dials a 0, then tells the modem to wait a
bit (each comma causes the modem to wait for a small amount of
time, see your modem manual for more information) for the dial
tone to occur and eventually dials the rest of the phone number.
Note that you may need to change the 0 to a 9 in the US.
`Use PBX dial command'
This switch enables the PBX dial command describe above.
`Redial delay'
The time to wait after walking through the whole dialing list
without making any successful connection before another attempt is
started.
`Dial retries'
The number of times the dialer walks through the dialing list
trying to make a successful connection before giving up. Setting
this value to `unlimited' will cause the dialer to retry over and
over again until it either makes a connection or the dialing
procedure is aborted.
`Dial timeout'
The time to wait for a successful connection during dialing. After
this time has elapsed, the dialer will skip to the next entry in
the list.
`Delay between calls'
Some modems impose a limit on how many times you may dial out in a
minute or just get hopelessly lost if dial commands come in in
rapid succession. Here is where you set the time to wait between
two successive calls. This value also has a profound effect on the
redial delay which will be extended a bit if it is smaller than
the delay between calls.
`Show modem responses'
By default, `term' will not display any modem response text that is
received while it is dialing. If you enable this switch no modem
output will be swallowed, it will even find its way into the
review buffer.
`Treat `NO CARRIER' as `BUSY''
If this switch is in effect, the dialing function will treat the
modem response code `NO CARRIER' exactly as the `BUSY' response
code.
`Connect auto-baud'
Most modems echo the baud rate upon successful connection. If
enabled the baud rate will be read and set for the serial driver.
*Use this feature with care as it may have certain negative
side-effects (such as the modem dropping the line just after
connecting to a BBS)! If you happen to use a modern high-speed
modem you will most certainly not need this feature. If in doubt
whether you need to enable this feature you should rather disable
it!*
`Dialer abort hangs up'
Unless this switch is enabled the dialing procedure will try to
stop a modem dial command by sending a plain carriage return
character. If the `Dialer abort hangs up' switch is enabled the
usual modem hang up procedure will be used instead.
`Time to connect'
`term' cannot measure the time to pass between the remote modem
picking up the line and the local modem sending the `CONNECT'
message. This slider allows to set the length of this interval.
Upon connection, it will be added to the total online time.
`Drop DTR on hangup'
Some modems will track the `data terminal ready' line in order to
make sure that the terminal program is listening. Once the line
goes back to low potential, these modems will drop the line and
hang up. Use this button to make `term' take advantage of this
feature.
`Redial after hanging up'
If this switch is in effect, `term' will redial all the phone
numbers still in the dialing list as soon as the line is hung up
or the carrier signal is lost.
`Connect limit'
This gauge is to set a certain period of time to be counted after
a connection is made. When elapsed, a command sequence (see
Command sequences) will be executed as to be set using the `Limit
macro' settings. If set to `0:00' this function will be disabled.
`Limit macro'
A command sequence to be triggered when the time to be set using
the `Connect limit' gauge has elapsed. If no text is entered this
function will be disabled.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep original settings.
Screen panel
============
`Display mode'
Choose the display mode `term' is to use for the main screen here.
`Screen font'
This is where you choose the user interface font `term' is to use
for the main screen.
`Faster layout'
Activating this switch will slow down display updates and window
management. Oh well, not always, there may be a speed increase with
some configurations, such as with external emulations activated or
when using more than four colours on the screen.
I suggest to experiment with the effects of this button before
actually using it permanently.
`Make screen public'
If this switch is enabled, the `term' main screen will be made
available as a public area other programs may open their windows
on.
``Shanghai' windows'
This item, which is only displayed if `Make screen public' has been
selected, is closely related to the function before. If active, all
windows that will normally be displayed on the Workbench screen
will open on the `term' main screen.
`Use public screen'
`term' does not necessarily open a custom screen, this switch will
make the main and auxilary windows appear on a named public
screen. `term' will try to adapt colours and text rendering modes
to its new environment. It will share the screen palette with
other applications which makes it possible to run the built-in
terminal emulation in eight or sixteen colours provided that
enough shareable screen pens are available (note: Kickstart 3.0
required). `term' will inherit the text font to be used for user
interface layout from the public screen it will open its window on.
*Note: only the built-in terminal emulation is guaranteed to take
advantage of pen-sharing facilities, external emulation libraries
will most likely fail to display text correctly!*
Take care when resizing the `term' main window as a size change
will reset the terminal emulation.
`Public screen name'
The name of the public screen `term' is to open windows on. `term'
will fall back to the Workbench screen if no proper name is given
(i.e. no name is entered) or the desired screen is unavailable.
`Screen title'
If this button is enabled, the `term' screen will contain a
draggable title bar, if not, the title bar will be disabled,
leaving more space for the terminal output window.
`Window border'
The main window will be opened on a custom screen, featuring a
drag bar and depth gadgets.
`Separate status window'
A separate window will be opened for the status display window.
`Status line'
This switch allows to disable the status line display or to change
between two alternative status line displays:
`Disabled'
No status line is displayed.
`Standard'
The standard two status lines are displayed.
`Compact'
A very condensed version of the status line is displayed,
only the data is shown but no captions. The data is displayed
in the following order:
1. Status
2. Terminal type
3. Transfer protocol
4. Baud rate
5. Serial parameters
6. Time of day
7. Online time
`Online display'
This switch determines what type of information is to be displayed
in the bottom right corner of the status display:
`Online time'
The time online
`Online cost'
The amount of money to be paid for the connection
`Time & cost'
Both time and money, the display will toggle between both of
them every five seconds.
`Colour'
This button determines the colour mode the terminal emulation is
going to use. Until now, four modes have been implemented:
`4 Colours (Amiga)'
Four colours, optionally blinking.
`8 Colours (ANSI)'
Eight colours, optionally blinking.
`16 Colours (EGA)'
Sixteen colours, as the EGA-palette, optionally blinking.
`2 Colours (Mono.)'
Monochrome, two colours.
`Blinking'
If selected the VT100 blinking option is enabled. This may require
to allocate more colours for a specific colour mode than with
blinking disabled, so do not be surprised if display performance
suddenly drops like a brick.
`Palette'
These buttons are used to select a colour of the screen palette
that is to be changed.
`Red/Green/Blue'
Use these sliders to modify the red, green and blue components of
the currently active colour.
`Use default colours'
Press this button to have the current colour palette set to the
built-in default colours.
`Use standard pens'
The user interface look is determined by the choice of on-screen
rendering pens, i.e. which colour to use for highlighted text,
active windows, inactive windows, etc. If this button is enabled
the screen will be opened using a predefined standard set of
drawing pens.
`Edit pens...'
Pressing this button will open the pen panel (see Pen panel) which
permits editing the drawing pens to use for this colour mode.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings; making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Pen panel
=========
*This control panel is available under Kickstart 3.0 and above only.
Its functionality is not supported under previous operating system
releases!*
The user interface look is determined by the choice of on-screen
rendering pens, i.e. which colour to use for highlighted text, active
windows, inactive windows, etc. Changing the screen colour palette also
affects the look of the user interface, this control panel permits to
compensate for such changes: even if you reverse the terminal colours
you can still retain the correct user interface look by adapting the
pens. The controls available are similar to the Workbench Preferences
editor program `Palette':
`Background'
The screen background colour to use, by default this is colour 0.
`Text'
The default colour to render common text, such as in control panel
labels.
`Important text'
The colour to draw important text in, this should put a certain
emphasis on the text rendered so the colour should be different
from the `Text' colour.
`Bright edges'
The colour to use to render the bright edges of windows.
`Dark edges'
The colour to use to render the dark edges of windows.
`Active window title bars'
The colour to mark the currently active window and selected
buttons and list entries.
`Active window titles'
The colour to use when printing text over active window title bars,
selected buttons and list entries.
`Menu background'
The colour to render pull-down menus in.
`Menu text'
The colour to use when printing the menu text.
`Use standard pens'
Reset the current pen selection to default values.
`Use'
Keep the current settings.
`Cancel'
Return to previous settings.
Terminal panel
==============
These settings control the basic behaviour of the terminal emulation
`term' uses. More specific emulation options are available in the
emulation window (see Emulation panel).
`Emulation'
This is where you select the terminal emulation. Choose one of the
following:
`ANSI/VT220'
This emulation is a `melange' of three terminal command sets
which themselves are supersets or subsets of one another. Most
of the VT220 command set is supported, including some
additions made in the ANSI X3.64 specifications. With VT220
its subsets VT100 and VT102 are supported. However, not all
the VT52 commands are supported.
`Atomic'
A plain text-only terminal mode which filters out terminal
commands and special control characters.
`TTY'
Also a text-only terminal mode but which displays all control
codes and commands it cannot handle on-screen, great for
debugging.
`Hex'
Another debugging mode which displays all incoming data in
hexadecimal notation. If possible the corresponding glyphs
will be displayed as well.
`External'
This enables the use of external terminal emulation libraries
following the XEM v2.0 specifications. In this mode you need
to specify the library to use, otherwise `term' will return to
`ANSI/VT220' mode.
`Emulation name'
The name of an external terminal emulation library to be used by
`term' instead of the built-in emulation code. Requires that the
emulation mode is set to `External'
`Bell'
This is where you select the action(s) `term' is to take whenever a
`bell' character turns up in the data stream:
`Visual'
The screen will flash.
`Audible'
An audible signal will be generated.
`Visual & audible'
A combination of both effects.
`Ignore'
Nothing will happen.
`System default'
The system beep routines will be used.
`Columns'
The number of columns to use for the terminal window. The minimum
value is 20 columns, the maximum value is defined by the actual
screen size.
`Lines'
The number of lines to use for the terminal window. The minimum
value is 20 lines, the maximum value is defined by the actual
screen size.
`Keymap file'
If your installation requires that `term' is to use a custom keymap
layout, enter the keymap file name here.
*At the time of this writing the program will not support custom
keymap layouts with the packet window (see Packet window) due to
operating system limitations.*
`Use emulation process'
If you are bold and daring you can have an external process handle
the terminal text output, just turn on this switch. Please note
that the external process will consume additional memory and text
throughput speed is likely to suffer with fragmented memory. On
the other hand the emulation process will relieve the main program
of the tedious task of having to process the incoming data which.
This helps the main program to keep up with the incoming data
stream and makes it less likely that incoming text is lost.
`Text font'
The name of the standard or default terminal text display font.
Please note that this font cannot be proportional-spaced.
`IBM PC font'
The name of the font to use if the terminal is in IBM PC mode.
Please note that this font cannot be proportional-spaced.
`Font'
Here the type of the font to be used for text display in the
terminal window can be selected:
`Standard'
The standard text font selected under the `Text font' settings
in this control panel.
`IBM PC style'
A font similar to the IBM PC text font will be used. No
matter how the translation tables (see Translation panel) are
configured, outgoing Amiga characters are translated into PC
character values. The terminal window will use the font
selected under the `IBM PC font' settings in this control
panel.
`IBM PC style (raw)'
This selection has very much the same effect as `IBM PC
style' but no character translation is performed. The terminal
window will use the font selected under the `IBM PC font'
settings in this control panel.
`Send CR'
`Send LF'
These buttons determine the sequences that are sent to the remote
if a carriage return (CR) or line feed (LF) character is to be
transmitted. Both characters serve as end-of-line indicators.
`-'
The character is suppressed.
`<<CR>>'
A carriage return character is sent.
`<<LF>>'
A line feed character is sent.
`<<CR>><<LF>>'
A sequence of two characters (carriage return followed by
line feed) is sent.
`<<LF>><<CR>>'
A sequence of two characters (line feed followed by carriage
return) is sent.
`Receive CR'
`Receive LF'
These two buttons have largely the same effect as the `Send CR/LF'
buttons, they are different in that they affect the incoming data
rather than the data transmitted.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Emulation panel
===============
The buttons found here allow you to change the internal parameters of
the selected emulation.
The following text only describes the parameters to change when using
the built-in terminal emulation; if an external terminal emulation is in
effect, this menu will conjure up the corresponding parameters menu as
supported by the external terminal emulation module.
`Cursor keys'
If in `applications mode' the cursor keys will cause a command
sequence to be transmitted instead of a cursor move event. This
mode is usually activated by special applications on the remote
side.
`Lock cursor key mode'
Certain applications may excessively change the cursor key mode
from standard to applications mode. If you do not want this to
happen you can forbid it by using this switch.
`Numeric keypad'
If in `applications mode' the numeric keypad will cause a command
sequence to be transmitted instead of the characters indicated by
the key labels. This mode is usually activated by special
applications on the remote side.
`Lock keypad mode'
Certain applications may excessively change the keypad mode from
standard to applications mode. If you do not want this to happen
you can forbid it by using this switch.
`Swap [Backspace] and [Del] keys'
If this switch is in effect the backspace and delete key codes are
swapped. *This also applies to sequences such as `Control + H'
which will produce a delete character instead of a backspace
character.*
`Terminal identifies as'
If the remote application requests that `term' identify itself,
stating which terminal it emulates, `term' can respond with
various identification signatures. It can identify itself as being
a DEC VT200, VT102, VT101 or VT100 terminal. You may only rarely
want to change this option, it is mainly used to trick old or
not-quite-that-well-behaved applications into being a little
friendlier towards the `term' terminal emulation.
Note: this switch does not affect how `term' operates, it only
changes the signature `term' responds with when asked to identify
itself, i.e. even if you switch to VT100, `term' will still
understand and process VT220 specific commands.
`BBS-ANSI compliant'
This is not an option like the others in this settings editor, it
is merely a shortcut to enable all options in this editor that are
required to make `term' behave like a BBS-ANSI compliant terminal.
In addition to that you may need to change the terminal settings
as well. For BBS-ANSI compliance, the terminal settings need to be
changed to use a 80 columns by 25 lines sized terminal window and
the IBM PC style font.
`Wrap characters'
This function activates the automatical carriage return function
which is triggered as soon as the cursor crosses the right screen
margin. To avoid unpleasant side-effects, this switch should be
activated all the time.
`Lock line wrapping'
If this switch is enabled, any requests to change the end of line
text wrapping mode will be rejected.
`Insert mode'
Normally, `term' is in overwrite-mode (characters entered
overwrite the contents of the screen). If this gadget is
activated, typed characters are inserted by pushing all the
characters right of the cursor towards the right margin.
*The insert-mode does only work for lines. If characters are
pushed out of the screen they cannot be restored.*
`New-line mode'
This gadget activates a special mode in which some VT100 control
sequences cause `term' to perform a linefeed instead of clearing
the screen or other serious changes of the contents of the screen.
``CLS' resets cursor position'
As per the VT100 specs, the control sequence to clear the screen is
not to change the current cursor position. However, several
applications expect it to be moved to the top left corner of the
screen. This button will activate this behaviour.
`Printer control enabled'
`term' supports the standard VT220 printer control commands. If you
do not want the remote application to play with the printer the
corresponding support commands can be disabled with this switch.
If disabled `term' will act like a VT220 terminal with no printer
attached.
`Lock text style'
If this switch is enabled, any requests to change the text
rendering attributes (underlined, highlight, blinking, inverse)
will be rejected.
`Lock text colour'
If this switch is enabled, any requests to change the text
rendering colour will be rejected.
`Wrap cursor moves'
According to the VT-100 specifications the cursor movements have
to stop at the edges of the screen. In spite of this the cursor
may leave these borders, especially in ANSI-mode, and may appear
at the other side of the screen. This button activates a more
`tolerant' mode.
`Lock font mode'
If this switch is turned on, any terminal commands to change the
font scale will be ignored.
`Scrolling'
This button selects one of two different scrolling modes: smooth or
jumping.
`Destructive backspace'
Determines if the `Backspace' code, which will delete the character
left from the cursor, only moves the cursor to the left or removes
the character from the screen. `Off' turns this feature off,
`Overstrike' clears the character below the cursor and `Shift'
shifts the line contents to the right of the cursor to the left.
`Answerback message'
The text to send across the serial line whenever an `ENQ'
character is received. The text is - as usual - a command sequence.
`Maximum prescroll lines'
This is where you set the maximum number of lines the terminal
emulation will scroll the screen contents up in one single `jump'.
This feature is often referred to as `prescroll'. *Note: the data
throughput rate plays an important part when counting the number
of lines to scroll. The higher the rate, the more lines will be
scrolled.*
`Maximum scroll jump'
Here is where you set the number of lines to move the screen
contents up when the cursor moves beyond the last terminal screen
line.
`Use standard pens'
The built-in terminal emulation makes use of up to sixteen text
rendering pens and four text rendering attributes. For each colour
mode supported (see Screen panel) a specific pen order and text
attribute assignment is predefined. You can select your own pen
order and attribute assignment if this switch is not enabled by
pressing the button labeled `Edit pens...'.
`Edit pens...'
Pressing this button will open the text pen panel (see Textpen
panel) which permits editing the drawing pens to use for this
colour mode.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Textpen panel
=============
For each colour mode (monochrome, 4, 8, 16 colours) the terminal
emulation uses a specific order of text pens and text attribute
assignments. The text pens determine which text rendering colours to
use. The text attribute assignments define how blinking, inverse,
underlined and highlighted text should be displayed. This control panel
is divided into two parts. One part serves to select the text pens, the
other part will let you assign the text attributes. At the left hand
side of each control you will find a label which indicates the
emulation's default value.
There is a limitation in the number of text colour you can choose.
While there is a colour mode which makes use of 16 colours, only a
maximum of eight colours can be selected. The reason for this
limitation is found in the terminal control commands which allow for
only eight colours (0-7). The remaining eight colours (8-15) are
selected via a text rendering attribute, known as `highlight'. This
means, if text is to be printed in colour 7 and the highlight text
rendering attribute is enabled the text will be printed in colour 15.
The `highlight' text rendering attribute always has a special meaning.
In all colour modes except 16 it causes text to be output in boldface.
`Drawing pens'
Here you select the text drawing pen order to use.
`Attributes'
Here you select which text rendering attribute to use instead of
the default. You can also choose to disable an attribute.
Clipboard panel
===============
`Clipboard unit'
The clipboard supports several units (0-255) which can be accessed
independently. It can make sense to change this value but
generally you will probably leave it as unit `0'.
`Paste prefix'
If enabled, the text to send before the clipboard contents are fed
into the input stream, see Clipboard.
`Paste suffix'
If enabled, the text to send after the clipboard contents are fed
into the input stream, see Clipboard.
`Convert <<LF>> to <<CR>>'
On the Amiga, new lines end with the LF (line feed) character. To
simulate typed text, these characters should be converted to CR
(carriage return characters) when pasting the contents of the
clipboard. If this switch is enabled, the conversion will take
place.
`Text pacing'
The mode to determine how text is sent to the remote:
`Direct'
Each line will be sent without any delay.
`Wait for echo'
The program will wait for each single character sent to be
echoed by the remote.
`Wait for any echo'
The program will wait for the remote to return any character
in response to any character sent. Typically, this is the case
with password prompts issued by BBSes.
`Wait for line prompt'
The program will wait until the remote sends a certain line
prompt text.
`Character/line delay'
The program will respect the character/line delay values to
be set using this control panel.
`Keyboard delay'
The program will send character separated by a delay to be
determined by the current system keyboard repeat delay.
*Note: the `echo' text pacing modes are to be used with greate
care. Certain online services do not echo characters back to the
sender as they run only in half-duplex mode. On the other hand
most BBS programs will not echo certain characters, such as escape
codes, etc.*
`Character delay'
When sending text this number determines how many seconds to wait
before sending the next character.
`Line delay'
When sending text this number determines how many seconds to wait
before sending the line-termination character (carriage return).
`Line prompt'
The character(s) to wait for the receiver to issue after a line of
text is send. This text may include command sequence tokens.
`Send timeout'
If the `Text pacing' mode is set to `Wait for echo' or `Wait for
line prompt' the maximum time to wait for echo/prompt before the
insertion is aborted.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Capture panel
=============
`Log actions'
If enabled will write a protocol of each program action (uploads,
downloads, dial attempts, etc.) to a file. Each action is listed
along with time and date. Carrier-lost events will also note the
approximate cost of the call. The log file created by this
function is *not intended* for postprocessing via call-log file
analyzers. Use the `Log calls' feature for this purpose.
`Log file'
The name of the file in which the information on the actions
executed by `term' will be stored if `Log actions' is enabled.
`Log calls'
If this switch is enabled, `term' will create call-log files in a
format compatible with the `CallInfo' program. Sometimes this
format is referred to as `NComm format'.
`Call log file'
The name of the file in which the information on calls made by
`term' will be stored if `Log calls' is enabled.
`Connect-auto-capture'
If enabled will automatically open a capture file after
successfully making a connection. Any other already open capture
file will be closed before proceeding. The files created will bear
the names of the corresponding phonebook entries.
`Filter enabled'
If selected, command sequences are filtered out before the incoming
characters are captured to disk or printer. This makes good sense
with noisy lines generating random characters which might scare
your printer. It also produces a text file that is much more
readable than with all the control sequence codes cluttering up
the text.
`Convert characters'
This switch works in conjunction with the `Filter enabled' option.
When using the `IBM PC style' terminal font, `term' receives
characters which normally do not have a place in the standard
Amiga character set. If the `Convert characters' switch is
enabled, these characters will be converted into their Amiga
equivalents, if there are any, before they go into the capture
buffer. Note that this character conversion is always enabled for
text captured to the printer.
`Creation date'
By default `term' will append the date of the call made to the
name of the auto-capture file created (`Add to name').
Alternatively, `term' will leave the name untouched and store the
creation date within the file (`Write to file').
`File drawer'
This text gadget contains the path in which the the capture files
will be created if `Connect-auto-capture' is enabled.
`Enabled'
This switch works in conjunction with the `Freeze buffer' menu
entry (freezing the text buffer contents). In fact, the menu entry
is adjusted according to the configuration settings whenever a new
configuration is invoked (that is, whenever a new connection is
made through the dialing panel or at program startup time). *`term'
will only freeze the buffer if this switch is set, it will leave
the buffer state (frozen or not) untouched if this switch is not
enabled.*
`Maximum size'
To save memory, a high-water mark concerning the maximum amount of
memory the text buffer (see Text buffer) will allocate for text
may be specified. The minimum value to be entered here is 2,000
bytes which are roughly equivalent to two text buffer pages of
text. A value of 0 will cause the text buffer to always allocate
as much memory as required to buffer all the incoming text.
`File drawer'
The path the file requester will bring up when saving the contents
of the text buffer.
`Line width'
The text buffer stores lines at a fixed size, this slider
determines the maximum line width.
`Buffer operation mode'
The incoming data can be stored in the buffer in two different
ways. The default is to filter out control sequences but largely
to store the text as it came in (this is the `Data flow' mode); if
the same text is printed over and over again in the same line, it
will show up more than once in the text buffer. The alternative is
the `Review' mode in which the text is stored right as it appears
on the screen. Although this is more faithful to the general
concept of the review buffer, this has its drawbacks; text will
only appear in the buffer when it has either scrolled out of view
or if the screen gets cleared.
`Open window'
This switch controls which part of the text buffer contents the
review buffer window will display when opened:
`Top'
Displays the top of the buffer contents.
`End'
Displays the end of the buffer contents.
`Remember position'
If this switch is in effect, the program will remember the text
display position between calls rather than jumping to the top or
the end of the text buffer.
`Open screen'
This switch controls which part of the text buffer contents the
review buffer screen will display when opened:
`Top'
Displays the top of the buffer contents.
`Remember'
Keeps the previous buffer position.
`End'
Displays the end of the buffer contents.
`Remember position'
If this switch is in effect, the program will remember the text
display position between calls rather than jumping to the top or
the end of the text buffer.
`Screen position'
The buffer screen will usually not be quite as wide as the system
overscan settings permit. This switch determines the horizontal
placement of the screen:
`Left'
The screen will be left-edge aligned.
`Centre'
The screen will be centred.
`Right'
The screen will be right-edge aligned. This will bring the
screen depth arrangement gadget in line with the other
screens.
`Display mode'
This is where you choose the screen display mode the buffer screen
should use.
`Search history size'
The text buffer search function maintains a backlog of all the
search text entered. The number of texts to remember, before the
oldest is discarded, can be set using the `Search history size'
control. In the search text entry field you can use the `Cursor
up' and `Cursor down' keys to scroll through the previously
entered search strings.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Command panel
=============
Here you will find entries for four command sequences which serve
four functions:
`Startup command'
At the beginning of every session with `term' and after a
connection has been established by the dialing routine a
command-sequence is executed. Do not use this command for
auto-login scripts and such, this is what the `Login command' is
for. Note that the dialing procedure executes the `Startup
command' after the `Login command'.
`Login command'
This command will be executed immediately after the dialing
procedure has established a connection. You should use this
command for login scripts and such. Note that the dialing
procedure first executes the `Login command' and then the `Startup
command'.
`Logoff command'
The command to execute when the line is hung up or the carrier
signal is lost.
`Upload command'
`term' will execute this command after a successful upload has
been made.
`Download command'
`term' will execute this command after a successful download has
been made.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Miscellaneous panel
===================
This is the place where options can be set which would not fit into
other control panels
`Backup configuration'
By default the local program configuration saved along with a
phonebook entry will replace the global configuration as soon as a
successful connection is made. If this switch is enabled, `term'
will remember the global configuration in effect before the
configuration data of a phonebook entry is adopted. As soon as the
serial driver loses track of the carrier signal or the user
chooses to hang up the line, `term' will restore the previous
global configuration.
`Show fast! macros'
If this switch is enabled, the fast macro window (see Fast macro
panel) will be opened whenever the current configuration becomes
active (e.g. at startup time). Please note that if this switch is
not enabled, this does not cause the fast macro window to be
closed.
`Release serial device when iconified'
By default the serial device driver is released when `term' is
iconified. Unfortunately, some modems drop the line when the
device is closed so this switch allows you to keep the link.
`Simple file I/O'
This switch controls whether `term' is to use double-buffered file
management routines or not.
`Protective mode'
With this switch enabled `term' tries to be nice and will notify
you in case file/drawer/program names you have entered probably are
invalid, data was not saved when the program is to be terminated,
files are about to get overwritten and also if some program
settings combinations are likely to cause trouble. Some users may
find this appealing, while some may find it appaling.
`Create icons'
If this switch is in effect `term' will try to provide icons for
all files it receives. The following file types (and the
corresponding icon files) are supported:
*Text file
icon `ENV:sys/def_text.info'
*Sound file
icon `ENV:sys/def_sound.info'
*Picture file
icon `ENV:sys/def_picture.info'
*Tool
icon `ENV:sys/def_tool.info'
*Archive file
icon `ENV:sys/def_archive.info'
*Preferences file
icon `ENV:sys/def_pref.info'
*Other file types
icon `ENV:sys/def_project.info'
Text and pictures saved by the program will also get icons
attached.
`Program priority'
Use this slider to determine the priority under which the `term'
main process is to operate. Adjusting this value can make `term'
perform more reliably in a system which experiences heavy task
loading. It is recommended to experiment with this value until a
satisfactory state is found. Setting the program priority too
high or too low may affect the performance of coprocess services
such as the double-buffered file I/O routines.
`I/O buffer size'
This slider controls how much memory the double-buffered file
management routines will allocate for each buffer. This means a
value of 4096 bytes will result in an allocation of 8192 bytes in
total.
`Alert'
`term' notifies the user of certain events, such as a connection
being established or a file transfer action which has just been
finished. This switch allows you to select the type of
notification:
`Bell'
A bell signal will be given.
`Screen'
The `term' screen will be brought to the front.
`Bell & Screen'
A combination of the two actions above.
`None'
Nothing will happen.
`Requester dimensions'
File, font and screen display mode requesters can be made to
appear at specific positions and in specific sizes on the
screen. This switch controls how they should appear:
`Ignore'
The default position and size won't be touched.
`Centre'
The requester will be centered within the limits of the
main window.
`Relative'
The requester will appear at a specific position
relative to the top left corner of the main window.
`Edit...'
Pressing this button opens a standard file requester,
prompting you to resize and move the window to a position
where you want to have it appear the next time it is opened.
Click on the `Use' button when finished.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Path panel
==========
In this part of the settings all paths, which `term' uses to save or
load any data, can be determined.
`...Upload drawer'
`...Download drawer'
The directories in which the functions contained in the `Transfer'
menu will search and create files.
`Configuration storage drawer'
The drawer that will contain all configuration files (phonebook,
macro keys, etc.). The default configuration file is called
`term.prefs' and will be searched in the path defined by the
enviroment variable `TERMCONFIGPATH' (see Environment variables).
`Default text editor'
Contains the name and search path of the editor used by `Edit &
upload text file' in the transfer menu (see Transf.).
``term' help text file'
This is where the name of the online-help text file is stored. By
default this is `PROGDIR:term.guide'.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Transfer panel
==============
This is where the protocols to be employed for file transfers are to
be selected. You will also find a handful of additional options here
which one way or the other fit into the cathegory of file transfer
related data.
`Override transfer drawer'
Each batch file transfer protocol allows you to specify the name
of the drawer to place the files it receives in. By default `term'
will redirect the files to a drawer to be specified in the path
panel (see Path panel). If this switch is disabled, the internal
settings of the current transfer protocol will be used. This may
cause files to appear (or rather disappear) in the wrong drawers.
Note: if you turn on this switch, `term' will deny the file
transfer protocol to delete any files as it may remove them from
the wrong drawer.
`Set `archived' bit'
If enabled, this switch will cause `term' to mark files sent as
`archived'.
`Transfer file icons'
This switch works in conjunction with the drag & upload feature
(see Transfer progress panel). By default, `term' will upload only
the files whose icons are dragged on the main window or found in
the upload queue. If this switch is in effect the icon files will
be transferred as well.
`Mangle filenames for upload'
Certain transfer protocols running under MS-DOS get into serious
trouble if told to receive files with names which do not match the
local naming scheme (8 characters for the name + "." + 3
characters for the extension). For example, in such situations
ZModem will restart the file transfer over and over again in a row
without getting anywhere. To steer clear of trouble you can turn
on the `Mangle filenames for upload' switch which will cause the
file transfer protocol to report `condensed' file names to the
remote receiver. A special algorithm will shrink the file names
to the MS-DOS file name template, clearing potentially dangerous
character combinations on the fly. This switch has no effect on
external programs. *Note: the algorithm may map two different
Amiga file names to the same MS-DOS file name, so watch out!*
`Transfer performance meter'
When a file transfer is running, `term' may optionally display the
file transfer performance in a small resizable window. The lines
drawn represent the following information:
*Black line
This line displayes the current transfer performance (usually
heavily oscillating).
*Blue line
This line displays the average transfer performance.
*White line
This line displays the smallest transfer performance (should
be constant during the transfer).
`Hide upload icon'
The file upload panel can be invoked by double-clicking on the
corresponding icon placed in the Workbench window (see File upload
panel). If you do not want the icon to apear, turn on the `Hide
upload icon' switch.
`Notify user after <n> errors have occured'
Here you select after how many file transfer errors you want to be
notified. The errors are counted separately for each file. When the
given number of errors have accumulated, an error notification
sound will be played. Setting this value to 0 suppresses this
feature.
`Notify user'
This switch controls when the file transfer window should be
brought the front and a notification sound should be played:
`only when an error occurs'
The `term' screen and the file transfer window will stay in
the background until a serious problem occurs.
`when transfer begins/ends'
Screen and window will be brought to the front at the
beginning and at the end of a transfer.
`when transfer begins'
Screen and window will be brought to the front at the
beginning of a transfer.
`when transfer ends'
Screen and window will be brought to the front at the end of
a transfer.
`File comment'
This is where the action to perform on downloaded files can be set:
`Ignore'
The file comment will not be touched.
`File type'
The file will be examined and a guess will be made which type
of file it is. The file comment will be set to the name of
the file type.
`Source and time'
The current BBS name and the time the file was received are
placed in the file comment.
`Default protocol'
Select your most often used file transfer protocol here, make
individual changes to the ASCII, text and binary transfer
protocols only if you really need them. Most users may never
need a different transfer protocol than the default protocol.
The default protocol will also handle automatic invocation of
downloads if necessary.
`Type'
You can either select `XPR library' or `External program'
here.
`XPR library' will use an external transfer protocol
library, such as `xprzmodem.library'. This library will
be kept open all the time and may for example handle
download session automatically. For more information on
how to use XPR libraries see Data transfer via XPR
library.
`External program' will invoke a program when necessary.
This program has to temporarily take over serial I/O
processing. Special facilities are available to pass
parameters such as the name of the device driver `term'
uses to the program. For more information on how to use
external programs see Data transfer via external program.
`Name'
This text entry field either holds the name of the XPR
library to use or the name of the external program.
Clicking on the select button at the right hand side of
the text entry field will bring up either a file
requester or another control panel to select the program
name and to edit the program parameters.
`Send signature'
Many file transfer protocols transmit characteristic
data to the remote at the beginning of a transmission.
This data is called a signature and when found in the
incoming data stream `term' will automatically invoke
the protocol in question. This is particularly useful
with external programs. This text entry field holds the
signature which will when received start an upload using
the current default protocol. For more information on
protocol signatures see Protocol signatures.
`Receive signature'
This text entry field holds the signature which will when
received start a download using the current default
protocol. For more information on protocol signatures
see Protocol signatures.
`Edit settings...'
Press this button to edit the settings of an XPR
library. For an example of how these settings can look
like, see XPR options sample.
`ASCII transfer'
This is where you set up the transfer protocol that is invoked
when you select the `Upload ASCII file(s)' and `Download
ASCII file(s)' menu items.
`Type'
You can either select `XPR library', `External program',
`<< Default >>' or `Internal' here.
`XPR library' will use an external transfer protocol
library, such as `xprzmodem.library'. This library will
be kept open all the time and may for example handle
download session automatically. For more information on
how to use XPR libraries see Data transfer via XPR
library.
`External program' will invoke a program when necessary.
This program has to temporarily take over serial I/O
processing. Special facilities are available to pass
parameters such as the name of the device driver `term'
uses to the program. For more information on how to use
external programs see Data transfer via external program.
`<< Default >>' will use the default file transfer
protocol.
`Internal' will use the built-in ASCII transfer
protocol. For more information see ASCII-transfer
settings.
`Send'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
sending ASCII data. Clicking on the select button at the
right hand side of the text entry field will bring up
either a file requester or another control panel to
select the program name and to edit the program
parameters.
`Receive'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
receiving ASCII data.
`Signature'
Many file transfer protocols transmit characteristic
data to the remote at the beginning of a transmission.
This data is called a signature and when found in the
incoming data stream `term' will automatically invoke
the protocol in question. This is particularly useful
with external programs. This text entry field holds the
signature which will when received start a transfer
using the current ASCII transfer protocol. For more
information on protocol signatures see Protocol
signatures.
`Edit settings...'
Press this button to edit the settings of an XPR
library. For an example of how these settings can look
like, see XPR options sample.
`Text transfer'
This is where you set up the transfer protocol that is invoked
when you select the `Upload text file(s)', `Edit & upload
text file' and `Download text file(s)' menu items.
`Type'
You can either select `XPR library', `External program'
or `<< Default >>' here.
`XPR library' will use an external transfer protocol
library, such as `xprzmodem.library'. This library will
be kept open all the time and may for example handle
download session automatically. For more information on
how to use XPR libraries see Data transfer via XPR
library.
`External program' will invoke a program when necessary.
This program has to temporarily take over serial I/O
processing. Special facilities are available to pass
parameters such as the name of the device driver `term'
uses to the program. For more information on how to use
external programs see Data transfer via external program.
`<< Default >>' will use the default file transfer
protocol.
`Send'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
sending textual data. Clicking on the select button at
the right hand side of the text entry field will bring
up either a file requester or another control panel to
select the program name and to edit the program
parameters.
`Receive'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
receiving textual data.
`Signature'
Many file transfer protocols transmit characteristic
data to the remote at the beginning of a transmission.
This data is called a signature and when found in the
incoming data stream `term' will automatically invoke
the protocol in question. This is particularly useful
with external programs. This text entry field holds the
signature which will when received start a transfer
using the current text transfer protocol. For more
information on protocol signatures see Protocol
signatures.
`Edit settings...'
Press this button to edit the settings of an XPR
library. For an example of how these settings can look
like, see XPR options sample.
`Binary transfer'
This is where you set up the transfer protocol that is invoked
when you select the `Upload binary file(s)' and `Download
binary file(s)' menu items.
`Type'
You can either select `XPR library', `External program'
or `<< Default >>' here.
`XPR library' will use an external transfer protocol
library, such as `xprzmodem.library'. This library will
be kept open all the time and may for example handle
download session automatically. For more information on
how to use XPR libraries see Data transfer via XPR
library.
`External program' will invoke a program when necessary.
This program has to temporarily take over serial I/O
processing. Special facilities are available to pass
parameters such as the name of the device driver `term'
uses to the program. For more information on how to use
external programs see Data transfer via external program.
`<< Default >>' will use the default file transfer
protocol.
`Send'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
sending binary data. Clicking on the select button at
the right hand side of the text entry field will bring
up either a file requester or another control panel to
select the program name and to edit the program
parameters.
For your convenience, `term' will by default place the
standard invocation command for the Hydra protocol here.
`Receive'
This text entry field either holds the name of the XPR
library to use or the name of the external program for
receiving binary data.
For your convenience, `term' will by default place the
standard invocation command for the Hydra protocol here.
`Signature'
Many file transfer protocols transmit characteristic
data to the remote at the beginning of a transmission.
This data is called a signature and when found in the
incoming data stream `term' will automatically invoke
the protocol in question. This is particularly useful
with external programs. This text entry field holds the
signature which will when received start a transfer
using the current binary transfer protocol. For more
information on protocol signatures see Protocol
signatures.
`Edit settings...'
Press this button to edit the settings of an XPR
library. For an example of how these settings can look
like, see XPR options sample.
`Use'
Use the current settings.
`Default (phonebook only)'
Drop the current settings, making a connection to the corresponding
phone number will leave the corresponding main configuration entry
unchanged.
`Cancel'
Keep the old settings.
Settings for each transfer library are saved in text files in the
`ENVARC:' and `ENV:' drawers.
Leave the default transfer library set to the one you intend to use
most.
XPR options sample
==================
You will find an excerpt of the `xprzmodem.doc' documentation file
for the ZModem file transfer protocol below which is the default
transfer protocol `term' is shipped with. Please note that other file
transfer protocols will sport different options and controls, you
should consult the corresponding documentation for more information.
`Text translation mode:'
`Y = Text Yes'
If receiving, translate CR/LF pairs or solo CR chars to
normal Amiga LF chars. Ignore data past ^Z. If sending,
suggests to receiver that they should receive this file in
text mode.
`N = Text No'
Receive file verbatim, without changes. If sending, suggest
to receiver that they receive this file verbatim, without
translations.
`? = Text status unknown'
If receiving, use sender's suggestion as to whether to do end
of line translations or not. If sending, tell receiver to use
default mode, since we don't know either.
`C = Text mode set by Comm program'
The library asks the communications program whether or not to
use Text mode for each file. If the communications program
does not support the necessary `xpr_finfo()' call, or if the
call fails, this option acts like T?. From the user's point
of view, what this option normally does is set the Text mode
to match the communications program's built-in
text/binary/end-of-line/translation mode, if any.
`Overwrite mode:'
`Y = Overwrite Yes'
If about to receive file with same name as one which already
exists, delete the old file and receive the new file in its
place.
`N = Overwrite No'
If about to receive file with same name as one which already
exists, append ".dup" onto the name of the new file to keep
them separate.
`R = Overwrite Resume'
If about to receive file with same name as one which already
exists, resume receiving file data from the current end of
the existing file.
`S = Overwrite Skip'
If about to receive file with same name as one which already
exists, skip this file, we don't want it. Batch transfers
will move on to the next file in the set, if any.
`Buffer size:'
`xprzmodem.library' adds a layer of file I/O buffering in addition
to whatever the comm program may or may not provide. This option
sets the size of XPRZModem's file I/O buffer in kilobytes. The
minimum value is 1 KB, for those using RAM drives or fast hard
drives, or those whose comm programs already provide sufficient
buffering. The maximum value is as much contiguous RAM as you
have available in your Amiga. If you specify more than is
actually available, XPRZModem will keep decrementing the buffer
size requested by 1 KB until the memory allocation works. That
way, if your RAM is too fragmented to use the amount you request,
XPRZModem simply uses the largest block available. Buffering is
especially helpful for floppy drive users; it keeps your drive from
continuously gronking and slowing things down all through the
transfer.
*Additional note for `term' users: this option is practically
replaced by the `I/O buffer size' settings in the miscellaneous
panel (see Miscellaneous panel).*
`Frame size:'
Although normally avoided, ZModem has the ability to require an
ACK to be sent from the receiver to the sender every X-many data
bytes. Normally you don't want to use this feature, because not
waiting for ACKs is part of how ZModem works so fast. However,
this feature can be very useful in conjunction with file I/O
buffering on slow devices (namely those floppy drives). If you
set up a large I/O buffer to avoid gronking your floppy so often,
you'll find that when the buffer finally *does* get around to
being flushed that it can take a looonng time; so long, in fact,
that the delay can cause timeouts and errors. But if you set your
ZModem to require the sender to wait for an ACK every
buffer's-worth of data, the sender will politely wait for you to
flush your buffer to the slow floppy and send it an ACK saying
it's OK to continue now. This value should be set to 0 to disable
ACKs (normal mode), or set it to the actual number of data bytes
allowed between ACKs. For example, if you set the Buffer size to
64KB because of your floppy, you should also set the Frame size to
65536 bytes.
`Error limit:'
This allows you to set the number of sequential errors which will
be required to convince ZModem to abort the transfer. The normal
value is 10, meaning that 10 errors must happen in a row with no
valid data being transferred in order to cause an abort. This
setting is provided for those using XPRZModem with a BBS, who may
wish to use a relaxed setting, or those with really lousy phone
lines who are desperate and patient enough to want the transfer to
continue in spite of horrible performance.
`Auto-activate mode:'
`Y = Auto-activate Yes'
If the comm program supports the ability, the library will
automatically go into receive mode when the start of a ZModem
download is detected.
`N = Auto-activate No'
Don't try to automatically start downloading, make the user
activate it.
`Delete after sending:'
`Y = Delete Yes'
Delete each file after it has been Successfully sent.
`N = Delete No'
Don't delete files after sending them.
`Keep partial files:'
`Y = Keep Yes'
Keep the fragment of a file received so far if file reception
is aborted. This allows you to use the Overwrite Resume
option above to pick up where you left off on your next
attempt.
`N = Keep No'
Delete any partially-received file after an aborted transfer.
`Send full directory path:'
`Send path Yes'
Send full filenames including drawer path to receiver.
`Send path No'
Send only simple filenames, not including drawer path.
`Default received path:'
Store all received files in this drawer, if option "Use received
path" is not checked. Ignored entry if option `Use received path'
is checked. The path can be any valid existing drawer, with or
without trailing `/' (e.g. `df0:', `Comm:hold', etc.).
*Additional note for `term' users: the default received path option
is ignored if the `Override transfer path' switch in the
miscellaneous panel (see Miscellaneous panel) is enabled.*
You will also find the familiar `Use' and `Cancel' buttons here which
will either keep or discard the changes you made to the settings.
Translation panel
=================
`term' is capable of replacing any incoming and outgoing character
with custom text. This may come in handy with the numerous incarnations
of the dreaded IBM PC font. The control panel to be opened features a
large list of buttons, each single one representing a single character.
Some characters are shown with their corresponding glyphs, some with
their symbolic names and some as plain numbers. Clicking on one of the
buttons will bring up a control panel which allows setting the text to
be received by the terminal emulation when a certain character is
received and the text to be sent when a certain characters is
transmitted. Alternatively, you can press the key combination
corresponding to the character whose translation you wish to change.
Both receive and send translation texts can consist of standard
command sequences (see Command sequences), except for the following
commands which are not supported: `\a', `\c', `\d', `\g', `\i', `\p',
`\u' and `\x'.
Please note that the translation does not come for free, terminal
input and output speed may suffer.
As of this writing only a few translation table files (see below) are
included in the distribution. If you wish to create translation tables
for IBM doorway mode, national IBM PC style font variants, etc. feel
free to send them to me. I will try to include them in the next `term'
release.
Currently included in the `term' distribution are the following
translation table files:
`ISO-4-(GB).prefs'
British 7 bit (ISO code 4) character set.
`ISO-10-(S).prefs'
Swedish 7 bit (ISO code 10) character set.
`ISO-11-(S).prefs'
Swedish 7 bit (ISO code 11) character set.
`ISO-15-(I).prefs'
Italian 7 bit (ISO code 15) character set.
`ISO-16-(P).prefs'
Portuguese 7 bit (ISO code 16) character set.
`ISO-17-(E).prefs'
Spanish 7 bit (ISO code 17) character set.
`ISO-21-(D).prefs'
German 7 bit (ISO code 21) character set.
`ISO-60-(N).prefs'
Norwegian 7 bit (ISO code 60) character set.
`ISO-61-(N).prefs'
Norwegian 7 bit (ISO code 61) character set.
`ISO-69-(F).prefs'
French 7 bit (ISO code 69) character set.
`PC-8.prefs'
Character translation for standard IBM PC style font. If you wish
to use these translation tables, make sure to set the `Font' type
in the terminal panel (see Terminal panel) to `IBM PC style (raw)'.
Unfortunately, there is no translation available for the Norwegian
and Danish variants of the PC-8 character set as I do not yet have a
fitting Amiga font available. Similar reasons have yet prevented to
implement PC-850 character set support.
Function key panel
==================
This control panel allows setting user definable texts for all ten
function keys. All texts are considered command sequences (see Command
sequences), a topic which will be covered later in this document.
`Modifier'
All in all 40 keys may be covered with user defined command
sequences (Command sequences). As the Amiga keyboard only has ten
function-keys this button switches between the modifier keys
(`Shift', `Control', `Alt') which, if pressed in addition which a
function key, will execute one of the 40 command sequences.
`Load'
Load the function key settings from a file.
`Save'
Save the function key settings to a file.
`Use'
`Close'
Closes the window, but keeps the settings.
As the definition of the function keys with command sequences
contradicts the standard definition of the four functions keys of a
VT100 terminal, the keys `F1'-`F4', which may be executed by pressing
the `Shift' key and the approriate function-key simultaneously, are
mapped to the standard sequences for function-keys. The user may - of
course - change these settings.
If an external terminal emulation happens to be active, those
function keys the emulation has allocated for itself will be disabled
and cannot be edited.
The traditional VT100 PF-keys (programmable function keys) are
mapped to the top row of the numeric keypad. Hold down the `Control'
key and press a top row key to produce the corresponding PF key code.
Cursor key panel
****************
This control panel both works and looks similar to the function key
panel (see Function key panel), the only difference is that it is to
assign command sequences to the cursor keys rather than to the function
keys. Displayed are the assignments for all four cursor keys and the
following buttons:
`Modifier'
Any cursor key can be pressed along with one of the modifier keys
(`Shift', `Control', `Alt'). This button will switch between the
different assignments.
`Load'
Load the cursor key settings from a file.
`Save'
Save the cursor key settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
Fast macro panel
================
The design and implementation of the settings to be configured in
this menu are closely related to the menu entry function key panel (see
Function key panel) discussed before. The only difference to be seen in
the fact that the fast! macros are mapped to buttons rather than
function keys (more on this topic later in this document, see Fast!
macros).
`Macro list'
The list of macros entered yet, to edit one of these, select it by
clicking the mouse button with the mouse pointer on it.
`Macro'
The name of a macro by which it is listed in the fast! macro list.
`Macro text'
The command sequence (see Command sequences) associated with a
fast! macro. Command sequences are discussed later in this
document.
`New'
Appends a new macro to the list. The user may then select and
customize it.
`Remove'
Removes the currently selected macro from the list.
`Clear'
Removes all the macros from list, clearing it.
`Load'
Loads the macro list from a file.
`Save'
Saves the macro list to a file.
`Close'
Closes the window, but keeps the settings.
`|<'
Places the currently selected macro at the top of the list.
`<'
Moves the currently selected macro one entry up.
`>'
Moves the currently selected macro one entry down.
`>|'
Places the currently selected macro at the end of the list.
Hotkey panel
============
This is where the key sequences used to arrange screens and to
execute special functions are to be configured.
`term screen to front'
The keys to press to bring the `term' screen to the front.
`Buffer screen to front'
The keys to press to bring the screen of the text buffer to the
front.
`Skip dial entry'
As an alternative to the `Skip' button, pressing these keys will
skip a dialing entry if the dialing function is currently active.
`Stop ARexx command'
An ARexx script started from within `term' can be aborted by
pressing these keys. Use this function only if pressing `Control +
C' does not stop the program execution.
`Commodity priority'
The commodity priority to assign this task to. You may want to
change this value if you have more than one program running which
uses the same key sequences as `term'. The program with the higher
commodity priority will receive the keystrokes first.
`Hotkeys enabled'
Whether the hotkeys are enabled or not can be toggled by clicking
on this button, or by using the `Exchange' program to be found in
the `Tools/Commodities' drawer.
`Load'
Loads the hotkey settings from a file.
`Save'
Saves the hotkey settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the original settings.
`term' will refuse to accept invalid keyword combinations. You will
be notified by a brief screen flash/bell signal and the cursor will
reappear in the text entry field whose contents are rejected.
Speech panel
============
If enabled, the Amiga speech synthesizer will be used to alert the
user of certain actions, such as carrier lost, connection made, etc.
This feature makes sense if `term' is running in the background where
the user cannot see what is actually happening on the main screen. By
default this feature is disabled.
*Note: speech synthesis is no longer available since Workbench v2.1
was introduced!*
`Rate (words/minute)'
Speaking speed in words per minute.
`Pitch (Hz)'
The greater this value, the higher the voice appears to be
speaking.
`Frequency (Hz)'
Voice frequency in Hertz.
`Volume'
The volume of the voice in percent.
`Sex'
Enabled female or male voice.
`Speech enabled'
Toggles the activity of the speech synthesizer.
`Speak!'
Speaks a small sample text, note that speech must be enabled for
this function to work.
`Load'
Loads the speech settings from a file.
`Save'
Saves the speech settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the original settings.
Sound panel
===========
As an option `term' will associate sounds with special program
functions and events. This is where the sounds are configured:
`Terminal bell sound'
The sound to be played whenever a `BEL' character is output on the
terminal screen.
``Connect' sound'
The sound to be played when a connection is established.
``Disconnect' sound'
The sound to be played when a connection is lost.
``File transfer finished' sound'
The sound to be played when a file transfer is finished
successfully.
``File transfer failed' sound'
The sound to be played when a file transfer is finished
unsuccessfully.
`Modem `ring' sound'
The sound to be played when the modem detects a call by a
different modem.
`Modem `voice' sound'
The sound to be played when the modem detects a phone call.
`Error sound'
The sound to be played when a number of file transfer errors have
occured (see Transfer panel).
`Volume'
This slider affects the volume of all sounds produced by `term'.
Setting it to zero suppresses sound output.
`Preload sound files'
If this switch is enabled `term' will load all sound files
immediately rather than accessing and loading them on demand. This
may save access time when a sound is to be played but may eat up
precious memory.
`Load'
Load the sound settings from a file.
`Save'
Save the sound settings to a file.
`Use'
Use the current settings.
`Cancel'
Keep the old settings.
There is no fixed size limit to sound files, the amount of available
system memory matters. The sound files may be compressed, mono or
stereo files.
As of Workbench 2.04 `term' will only load plain IFF-8SVX format
sound files. With Workbench 3.x any sound file can be loaded for which
there exists a datatypes class. Please note that due to an operating
system bug sound files larger than 102,400 bytes will not play
correctly under Workbench 3.0.
Transfer progress panel
=======================
The transfer routines open an information window in which a number of
transfer parameters are displayed. Additionally, the file transfer can
be aborted by clicking either of the three buttons (`Stop entire
transfer', `Skip current file' or `Stop transfer batch'). *For most
transfer protocols all buttons have the same effect.* Consult the
documentation to see if different levels of abort are supported by your
favourite transfer protocol.
The following information is displayed in the transfer window:
`Protocol'
The name of the transfer protocol currently running.
`Information'
A list to contain error message, the names files transferred and
miscellaneous other messages addressed to the user. Error messages
are printed in a special colour.
`File'
The name of the file being transferred.
`Next file'
The name of the next file to be sent.
`Space left'
The space left on the destination device. `term' will try to
calculate the number of blocks the file being received will take
on the destination device and display a warning the file in
question is probably not going to fit.
*Caution: `term' only makes a very likely guess which may or may
not come true. The guess may be wrong if the destination device
happens to be a kind of Ram-Disk which shrinks and expands as
memory requirements come and go. Such devices are usually 100%
full. In most other cases you will probably be able to make room
for the file being received before any space problem turns up.*
`Completion time'
If the corresponding information is available, the point of time
when the current file will be transferred completely.
`File size'
If available, the size of the file.
`Bytes xfered'
Number of bytes transferred yet.
`Total size'
The total size of all files to be transferred.
`Total bytes xfered'
The total number of bytes transferred yet.
`Files xfered'
The number of files transferred yet and the number of files to go.
`Blocks xfered'
Number of data blocks transferred yet.
`Characters/second'
The effective transfer speed in characters per second.
`Character delay'
The delay between two character being sent.
`Packet delay'
The delay between two packets being sent.
`Packet type'
A short description of the data block type employed for data
transfer.
`Block check type'
The method employed to verify the integrity of the data blocks
being transferred (this usually is a form of cyclic redundancy
checking).
`Block size'
Size of a data block in bytes.
`Expected time'
The time the transfer protocol expects the transfer will take.
`Elapsed time'
The time elapsed during transfer.
`Number of errors'
The number of errors occured during file transfer.
`Number of timeouts'
The number of timeouts occured during file transfer.
If the currently active transfer protocol provides the necessary
information, two bars will be displayed at the bottom of the transfer
window indicating the amount of transferred data and of time to go
before the transfer is finished.
`term' knows about the Z-Modem data-inquiry sequence the remote
receiver issues when expecting files. If recognized, this sequence will
cause `term' to display a requester asking for the type of data upload:
text or binary. One could call this feature `auto upload'. You also have
the opportunity to select `Abort' which will transfer the ZModem abort
sequence or to click on the `Ignore' gadget which will plainly ignore
the fact that the ZModem inquiry sequence has been recognized. *The
Z-Modem abort sequence will also be transferred if you select the
`Cancel' button in the file requester to appear after selecting text-
or binary-upload.* If the `Upload from queue' option is in effect the
contents of the transfer queue will be uploaded.
*Some transfer protocols will allow you to enter a default receive
path the library is supposed to create files it receives in. On request
(see Miscellaneous panel) `term' will ignore these settings and use the
settings to be changed in the `Settings/Paths' (see Path panel) menu
instead.*
Each file that is received and which does not remain empty is
examined briefly to find out about the file type. If recognized
successfully and the corresponding feature is enabled, a small comment
indicating the file type will be attached to the file. `term' currently
knows about 83 different file types.
If the `term' main window is opened on the Workbench screen, you can
select and drag icons on it in order to upload the corresponding files.
A requester will be opened to ask for the upload style (either binary or
text).
In case a file transfer terminates with an unrecoverable error
(*note: the transfer protocol is responsible for reporting error
conditions to `term'*) the file transfer window will stay open until
explicitly closed by the user so the transfer error report list can be
viewed.
ASCII-transfer panel
====================
The built-in ASCII transfer routines as to be enabled in the
transfer panel (see Transfer panel) display transfer progress
information in a special window (note that sending and receiving will
open different windows). Here is a description of the controls and
displays:
`Bytes xfered'
The number of bytes sent/received.
`Lines xfered'
The number of text lines sent/received.
`Information'
Transfer progress information and error display.
`Character delay'
When sending text this number determines how many seconds to wait
before sending the next character.
`Line delay'
When sending text this number determines how many seconds to wait
before sending the line-termination character (carriage return).
`Text pacing'
The mode to determine how text is sent to the remote:
`Direct'
Each line will be sent without any delay.
`Wait for echo'
The program will wait for each single character sent to be
echoed by the remote.
`Wait for any echo'
The program will wait for the remote to return any character
in response to any character sent. Typically, this is the case
with password prompts issued by BBSes.
`Wait for line prompt'
The program will wait until the remote sends a certain line
prompt text.
`Character/line delay'
The program will respect the character/line delay values to
be set using this control panel.
`Keyboard delay'
The program will send character separated by a delay to be
determined by the current system keyboard repeat delay.
*Note: the `echo' text pacing modes are to be used with greate
care. Certain online services do not echo characters back to the
sender as they run only in half-duplex mode. On the other hand
most mailbox programs will not echo certain characters, such as
escape codes, etc.*
`Quiet transfer'
This switch controls whether incoming text will be displayed in the
terminal window. You may want to watch how the remote responds to
the data sent/received.
`Skip current file'
Stops sending the current file and proceeds to the next.
`Stop entire transfer'
Stops the ASCII data transfer.
In case a file transfer terminates with an unrecoverable error the
file transfer window will stay open until explicitly closed by the user
so the transfer error report list can be viewed.
ASCII-transfer settings
=======================
`Text pacing'
The mode to determine how text is sent to the remote:
`Direct'
Each line will be sent without any delay.
`Wait for echo'
The program will wait for each single character sent to be
echoed by the remote.
`Wait for any echo'
The program will wait for the remote to return any character
in response to any character sent. Typically, this is the case
with password prompts issued by BBSes.
`Wait for line prompt'
The program will wait until the remote sends a certain line
prompt text.
`Character/line delay'
The program will respect the character/line delay values to
be set using this control panel.
`Keyboard delay'
The program will send character separated by a delay to be
determined by the current system keyboard repeat delay.
*Note: the `echo' text pacing modes are to be used with greate
care. Certain online services do not echo characters back to the
sender as they run only in half-duplex mode. On the other hand
most mailbox programs will not echo certain characters, such as
escape codes, etc.*
`Character delay'
When sending text this number determines how many seconds to wait
before sending the next character.
`Line delay'
When sending text this number determines how many seconds to wait
before sending the line-termination character (carriage return).
`Line prompt'
The character to wait for the receiver to issue after a line of
text is send. These character may include command sequence tokens.
`Send timeout'
If the `Text pacing' mode is set to `Wait for echo' or `Wait for
line prompt' the maximum time to wait for echo/prompt before the
insertion is aborted.
`Send CR'
`Send LF'
These buttons determine the sequences that are sent to the remote
if a carriage return (CR) or line feed (LF) character is to be
transmitted. Both characters serve as end-of-line indicators.
`-'
The character is suppressed.
`<<CR>>'
A carriage return character is sent.
`<<LF>>'
A line feed character is sent.
`<<CR>><<LF>>'
A sequence of two characters (carriage return followed by
line feed) is sent.
`<<LF>><<CR>>'
A sequence of two characters (line feed followed by carriage
return) is sent.
`Receive CR'
`Receive LF'
These two buttons have largely the same effect as the `Send CR/LF'
buttons, they are different in that they affect the incoming data
rather than the data transmitted.
`Ignore data past terminator'
With this option enabled the receiver will search for a
termination character in the incoming data stream. If this
character is found the transfer will be terminated.
`Terminator character'
Enter the ASCII code of the terminator character to be used for
the `Ignore data past terminator' feature here.
`Quiet ASCII transfer'
If this switch is not enabled, the built-in ASCII upload/download
routines will display the outgoing/incoming data in the terminal
window. This option is to let you watch the progress of the file
transfer, so that, for example, if the remote does not respond to
the data you send, you may want to stop and restart the upload.
`Strip bit 8'
If this switch is effect each character received or transmitted by
`term' will have its high-order bit cleared.
With ASCII uploads it is important to make sure that end-of-line
characters such as carriage return and line feed are properly set up
for the remote. While on the Amiga it is common to end a line of text
with a line feed character, most editors and such expect a carriage
return character to be transferred. This can easily be arranged by
setting the `Send LF' switch to `<<CR>>'.
Phonebook
=========
The functions described in the following can be found in the `Modem'
menu and relate to the menu entries `Phonebook', `Dial' and `Redial'.
`term' is equipped with a telephone number management system, the
phonebook, which is described in the following lines.
`Group button'
At the top of the window you will find button which displays the
name of the group whose contents are displayed below in the list.
By default, you will find the name `<< All entries >>' here, which
indicates that not a specific group is displayed, but rather all
entries the phonebook consists of. You can switch between groups
by pressing the `[Tab]' key.
`List'
Below the group button the list of phonebook entries belonging to
the group in question are displayed. You can move through the list
using the `[Cursor up]' and `[Cursor down]' keys. To tag any
entries for dialing, hold down and `[Shift]' key and click on the
entries using the mouse, alternatively, highlight the entry, then
press the `[Space]' key. To untag them, repeat the procedure again.
A double-click on a single entry will tag the entry and
immediately start dialing.
`Comment display'
For each entry you highlight its associated comment is displayed
in the area below the list.
`|<'
Press this button to move the highlighted phonebook entry to the
beginning of the list.
`<'
Press this button to move the highlighted phonebook entry one slot
up in the list.
`>'
Press this button to move the highlighted phonebook entry one slot
down in the list.
`>|'
Press this button to move the highlighted phonebook entry to the
end of the list.
`All'
To tag all entries visible in the list above, press this button.
`Toggle'
This button tags all visible entries that were untagged before the
button was pressed and untags all entries that were tagged.
`None'
Press this button to untag all visible entries.
`Pattern'
This button brings up another window to tag/untag entries matching
a pattern:
`Mode button'
This is where you select if you want to untag or tag the
entries matching the pattern below. You can press the `[Tab]'
button to switch modes.
`System name'
`Comment'
`Numbers'
Any phonebook entries whose name matches this name, comment
and number patterns will get tagged/untagged.
`Apply'
Tags/untags phonebook entries matching the pattern. The
pattern window will stay open.
`Apply+Close'
Tags/untags phonebook entries matching the pattern and closes
the pattern window.
`Close'
Closes the pattern window, does not tag/untag phonebook
entries.
`Edit...'
Brings up the phonebook entry editor, for more information see
Phonebook entry panel.
`Dial'
Merges all tagged entries by the order in which they were tagged
into a list and hands it to the dialer.
`Copy...'
Makes a copy of the currently highlighted phonebook entry and
brings up the phonebook entry editor, for more information see
Phonebook entry panel.
`Use'
Copies the settings associated with the highlighted phonebook
entry into the global program settings and closes the phonebook
window.
`Add...'
Adds a new phonebook entry and initializes it with default values,
then brings up the phonebook entry editor, for more information
see Phonebook entry panel.
`Delete'
Removes the highlighted entry from the phonebook.
`Group'
Brings up the group window:
`Select group'
From this list, pick the group you wish to add the tagged
entries or the highlighted entry to.
`Or enter group name'
Alternatively, you may enter the name of a new group to add
the entries to.
`Use'
If there are entries tagged, they will be added to the group
you have specified, the group will be created if it does not
yet exist. If no entries are tagged, the highlighted entry
will be used instead. The group window will be closed and the
group button and list will be updated.
`Cancel'
The group window will be closed.
`UnGroup'
The currently displayed group will be deleted. This does not delete
the entries in the group.
`Auto dial'
This feature corresponds to the switch of the same name in the
phonebook entry editor (for more information see Phonebook entry
panel). If enabled, `term' will put all the entries in the
phonebook that have the `Auto dial' option set into a dialing list
and immediately start to dial after `term' starts up.
`Auto exit'
If the `Auto dial' switch is enabled, this switch will make `term'
exit after all the entries in the auto dial list are dialled. To
avoid exiting, hit the `Cancel' in the dialer.
`Load...'
Loads the contents of a telephonebook from a file.
`Merge...'
Loads phonebook entries from a file and merges them with the
currently loaded phonebook.
`Save...'
Saves the contents of a telephonebook to a file.
`Print...'
This button will cause another control panel window to be opened,
see Printing panel for more information.
`Sort...'
Opens the sort window:
`Criteria'
This is where you select by which criteria the visible
phonebook entries should be selected. `Name', `Number' and
`Comment' should speak for themselves, `Selection' will sort
the entries by the order of tag numbers.
`Reverse order'
Enable this switch to reverse the sort order.
`Sort'
Sorts the entries, keeps the sort window open.
`Sort+Close'
Sorts the entries and closes the sort window.
`Close'
Closes the sort window, does not sort.
`Copy config...'
A lot of time can be saved by copying selected parts of the global
configuration to a local configuration which is part of a phonebook
entry. Selecting this button will invoke a control panel which
allows to select which parts of the global configuration should be
copied. The control panel also remembers which parts were copied
when it was invoked the last time, see Copy panel for more
information.
Phonebook entry panel
=====================
`System name'
This is where you pick the name under which this entry should show
up in the list.
`Comment'
A comment to associate with the entry, it will be displayed in the
main window below the list.
`Numbers'
The telephone numbers of the entry.
If a system supports multiple lines, the phone number of each line
may be entered, each one separated by a vertical bar `|' character
(example: `123456|654321' would cause the dialing routine to dial
the numbers `123456' and `654321'). The dialing routine will
process all these phone numbers before proceeding to the next
phonebook entry.
The `|' character also works for the modem init, modem exit and
dial prefix sequences. Whenever the dialing routine dials another
phone number from a list separated by bars, it will try to find a
matching init/exit/dial prefix sequence. If more phone numbers are
specified than sequences are available, it will use the last
sequence given (an example: a phone number may be given as
`123456|654321|12345', the dial prefix text may be `ATDP|ATDT';
the dialing routine will call the first number using `ATDP123456',
the second number using `ATDT654321' and the third number, since
no special dial prefix is available, again using `ATDT12345').
*Note: if you do not enter a phone number you will be unable to
use the entry for dialing.*
`Quick menu'
If this switch is in effect, the corresponding phonebook entry will
be put into the `quick dialing menu' (see at the right hand side
of the main menu). Selecting the menu entry will dial the
corresponding phone number. Note: only up to 50 phone numbers can
be put into the list.
`Auto dial'
Marks this entry for auto dialing. For more information on this
feature, see Phonebook.
`Hide'
If this switch is enabled, the contents of the `User name' and
`Login password' text entry fields below will be obscured. If you
wish to edit these, you must disable this switch.
`User name'
`Login password'
Here you can store information to be used later for login scripts
and such.
`Settings'
This group contains entries which consist of a checkbox and a
button. If the button is disabled, the phonebook entry will not
use the settings controlled by the button.
This concept is central to how the phonebook works and stores,
which is why it needs a bit more explanation.
When you start up `term', it loads its global configuration data
from a certain file. This global configuration normally reflects
the most frequently used settings, they do not necessarily need to
change between different phonebook entries. For example, if you
only use one modem the modem settings will probably be the same
for all phonebook entries. If it's the same, disable the checkbox
corresponding to the modem settings in every phonebook entry.
Repeat for every other settings item that never needs to change.
When the dialer eventually makes a connection, it copies all the
settings items of the entry it has connected to into the global
configuration that have the checkboxes enabled. If you want to use
special settings for a phonebook entry, enable the checkbox you
want, press the button next to it and edit the settings.
`|<'
Moves to the first tagged entry.
`<'
Moves to the previous tagged entry.
`>'
Moves to the next tagged entry.
`>|'
Moves to the last tagged entry.
`Close'
Closes the edit window.
Rate panel
==========
`term' will count the minutes you are online and connected to a BBS
as soon as a connection is made through the dialing routine. As soon as
the connection is lost or you hang up, `term' will use the information
to be specified in this control panel to calculate the amount of money
to be paid for the call.
`Pay/unit'
The amount of money to be paid for each single time unit when
online. This fee must be given in the smallest currency unit
available (pence, cents, centimes, etc.).
`Sec./unit'
This is where you enter how many seconds each time unit lasts.
There are two different groups of the two entries listed above
available: one for the first unit and one for all following units. So,
if you only pay for the call you make but not for the time you spend
making it, just enter the fee in the first group and set the second
group to zero.
`Days and dates'
This list contains the default rate settings and exceptions for
certain dates and days of the week. Each line displays the type of
the entry and a comment (separated by the `>>' character). The
following types are available:
`Day(s)'
Settings for certain days of the week
`12. Jan (example)'
Settings for a specific date
If there is no special type available for an entry, it's probably
the default settings you are dealing with. These settings are used
whenever `term' cannot find an entry for the current day.
For each entry in this list there is at least one associated starting
time available which defines when the associated rate settings are to be
used. You will find the time settings in the list titled `Time'. To add
a new time use the `Add' button. To edit an existing entry use the
`Edit' button. To remove an entry, press the `Remove' button.
`Add date'
Will invoke a control panel to create a new rate entry to be used
on a specific date. Use the sliders and button to select the day
the settings will be valid for.
`Add day(s)'
Will create a new rate entry referring to one or more days of the
week. Use the buttons of the control panel to select the days the
current settings will be valid for.
`Import'
Much work can be saved if the rate settings for the current
phonebook entry are imported (or copied) from a different
phonebook entry. To do so, select this button. The control panel
to be opened will display the list of phonebook entries available
and three buttons:
`Replace rates'
The rate settings of the current phonebook entry will be
replaced by the settings of the selected entry.
`Append rates'
The rate settings of the selected entry will be appended to
the current phonebook entry.
`Cancel'
Will abort the selection.
Whenever a rate entry is selected, the corresponding parameters
(`Pay/unit' and `Sec./unit') can be edited. If the entry refers to a
certain date or a specific day of week three additional buttons are
made available:
`Edit'
Just as the labels says, will allow you to modify an entry after
it has been created.
`Clone'
Will duplicate the current rate entry and append it to the list.
`Remove'
Removes an entry from the list.
Copy panel
==========
This control panel allows you to select which parts of the global
configuration to copy into the currently selected phonebook entry.
`To all entries'
The selected parts will be copied to all phonebook entries. If any
phonebook entries are selected when this action is to be performed,
only the selected entries will be affected.
`Copy'
This is where you select from which source the configuration
information will be copied:
`Global configuration'
Parts of the currently active global configuration will be
copied.
`Defaults'
When going online, instead of overriding the currently active
global configuration with the supplied local phonebook
configuration the corresponding global configuration will be
left unchanged.
`Select all'
Selects all parts.
`Clear all'
Clears the current selection.
`Use'
Copies the selected items.
`Cancel'
The window is closed, no items are copied.
Dial panel
==========
The following information about the dialing process is displayed:
`Calling'
The name of the telephonebook entry belonging to the number being
dialled. If it is just a telephone number the text `<< Unknown >>'
is shown, indicatinging that the name of the BBS is unknown.
`Comment'
This is where the comment corresponding to the current dialing list
entry is displayed.
`Number'
The telephone number being dialed or just dialed.
`Next'
The name of the phonebook entry which will be processed next if no
connection is established. If no further entry exists, "-" will be
displayed.
`Timeout'
A counter which is decreased every second and which reflects the
time remaining to establish a connection or to cycle through the
dial queue again.
`Attempt'
This field shows the number of unsuccessful cycles made through the
dialing queue to establish a connection.
`Message'
A message to the user. This can be:
`Dialing...'
A dial is in process.
`Line is busy.'
The dialed number is engaged.
`Incoming call!'
The modem has been called from another modem.
`Incoming voice call!'
The modem is receiving a call which was not originated by
another modem.
`No dialtone detected!'
The modem was unable to detect any dialing tone on the line,
it may possibly be not connected.
`Connection established.'
Just as the name says...
`Maximum number of dial retries reached!'
Just as the name says...
`Dial attempt timeout.'
The time available to establish a connection has been reached
or exceeded.
`Redial Delay...'
Pause until the next cycle through the dialing queue.
Additionally, the following controls are available:
`Skip'
With this function the current dialing attempt is cancelled and
the next number is processed. If no succeeding telephone number
exists `term' waits for the next cycle through the dial queue or
until `Skip call' is pressed again.
There also is a hotkey combination available to accomplish the same
task.
`Remove'
This button works in part similar to the `Skip call' button.
Additionally, it removes the current phonebook entry from the
dialing list.
`Go to online'
If the line is very noisy, the connection to a mailbox may have
been made, but the `CONNECT' text may be got lost. Pressing this
button will cause `term' to assume that the modem is in fact
online now, start the rates accounting and return you to the main
window.
`Stop dialing'
Operation of this button exits the dial queue (leaving the the dial
queue intact) and ends the dialing process.
`Start script recording on connection'
As soon as the connection is establish `term' will start recording
incoming text and your responses to it, thus making it possible to
create auto-login scripts and such. For more information on this
topic see Script recording.
If a connection is successfully made the corresponding entry in the
dial queue will be removed.
Selecting the close gadget will close the window and cause the phone
book panel to be reopened.
Printing panel
==============
This control panel is part of the phonebook. It is opened whenever
the `Print' button is selected and allows for setting the output
options.
`Output file or device'
This is where you enter the name of the file or device (such as
`PRT:') the phonebook printout is to be sent to.
`Plain text'
If enabled only the plain and bare information text will be
printed, else text attribute control sequences will be sent as
well.
`Include...'
Each switch determines whether the corresponding phonebook entry
information will be included in the printout.
`Use'
Will start printing the phonebook contents.
`Cancel'
Returns to the phonebook.
Trap panel
==========
By default `term' scans the input data stream for a set of special
character sequences, such as `NO CARRIER', `RING' and `VOICE',
depending on how your modem settings (see Modem panel) are set up. The
trap panel permits adding custom character sequences which if found
cause `term' to execute the corresponding command sequences (see
Command sequences). This makes it possible to write auto-login
procedures by just adding traps for the user name and password prompts.
For example, suppose your BBS prompts you to enter your user name with
the text `User name:' and to enter your password with the text
`Password:'. You would create two trap entries, one with `User name:'
as the sequence and `\\u\\r' as the command and one with `Password:' as
the sequence and `\\p\\r' as the command. Provided the phonebook entry
is set up correctly (see Phonebook, User/Password) connecting to the
system will log you in `automatically'.
The trap settings editor consists of the following controls:
`Trap list'
This list contains all the trap sequences `term' knows.
`Sequence'
This text entry field contains the currently selected sequence.
`Command'
This text entry field contains the command sequence (see Command
sequences) to be executed when the corresponding trap sequence is
found.
`|<'
Move the currently selected entry to the beginning of the list.
`<'
Move the currently selected entry up in the list.
`>'
Move the currently selected entry down in the list.
`>|'
Move the currently selected entry to the end of the list.
`New'
A new trap list entry is added, prompting you to edit it.
`Remove'
Removes the currently selected list entry
`Clear'
Removes all entries from the list, clearing it.
`Use'
Closes the window, using the current trap settings.
`Load'
Loads the trap settings from a file.
`Save'
Stores the trap settings in a file. *Note: `term' reads the
default settings from the file *trap.prefs*, so make sure your
trap settings are named accordingly if you wish to use them upon
startup*.
File upload panel
=================
`term' permits building a list of files to upload before the upload
is started. This list can be built in many ways, such as by dropping
the icons of the files to send on the icon labeled `term Upload queue',
by dropping the icons on the upload panel window, by entering the names
of the files in the upload panel window or by using the file requester.
There are two ways to open the file upload panel. You can
double-click on the `term Upload queue' icon or use the main menu entry
`Upload queue'. It includes the following controls:
`Files to upload'
This is the list of files to be sent. The text entry field below
serves to add new file names or to edit the currently selected
file name.
`Add files'
Clicking on this button brings up a file requester to add new
files to the list. You can select files from one drawer at a time.
The file requester will pop up over and over again asking you to
add more files until you press the `Done' button.
`Add'
Click on this button to add another file name to the list, you
will be prompted to type in its name.
`Remove'
Press this button to remove the currently selected entry from the
list.
`Clear'
In order to remove all entries from the list, clearing it, press
this button.
`Binary upload'
Use this button to upload the listed files in binary mode.
`Text upload'
Press this button to upload the listed files in text mode.
`Hide'
Click on this button to hide the file upload panel. The list
contents will be stored.
Area code panel
===============
In the phonebook (see Phonebook) phone rate accounting information
can be assigned to individual entries. The area code panel permits to
assign phone rate accounting information to the phone numbers
themselves, so even the `Dial phone number' menu function will take
advantage of it. The area codes in each phone number determine the
rates accounting information to associate with it. In the area code
list you assign a name to each entry and a pattern to match a single or
multiple area codes; next you configure the rates parameters to use for
this entry.
The area code rates accounting settings are not meant to replace the
individual rates settings in the phonebook, but they have priority over
them.
The area code panel sports the following controls:
`Groups'
This is the list of area code groups, the single entries are
edited below.
`Name'
A name or title for an area group entry.
`Pattern'
The area code patterns are configured here. If you wish to have an
entry correspond to area codes starting with `009' you would enter
`009#?' here. The pattern syntax follows the AmigaDOS wildcard
pattern syntax, so for example multiple area codes can be easily
combined, e.g. `009' and `007' could be combined as `(009|007)#?'.
See your `Using the system software' manual for more information.
`term' scans the area code list top-down, i.e. for two consecutive
entries `009#?' and `0097#?' the number `00971324' would match the
first entry, but not the second.
`|<'
Moves the currently selected entry to the beginning of the list.
`<'
Moves the currently selected entry up in the list.
`>'
Moves the currently selected entry down in the list.
`>|'
Moves the currently selected entry to the end of the list.
`New'
Creates a new area code entry and prompts you to edit it.
`Remove'
Removes the currently selected area code entry from the list.
`Clear'
Removes all area code entries from the list, clearing it.
`Edit'
Brings up the rates editing window for the currently selected
entry. See Rate panel for more information.
`Use'
Closes the window, keeps the current settings.
`Load'
Loads the area code & rates accounting information from a file.
`Save'
Saves the area code & rates accounting information to a file.
Upon startup `term' will read the default area code & rates
accounting information from a file named `rates.prefs', so make
sure that your settings file is named correctly for `term' to find
it.
Parameter panel
===============
When `term' invokes an external program which is to handle the job
of transferring files it can pass special parameters to the program on
the command line, such as drawer names. This control panel helps you to
build a command line for the program in question.
`Command'
This is where you enter the command to invoke, such as `run
hydracom'.
`1 File'
This adds `%f' to the command line. When the program is invoked a
file requester will prompt you to select one single file. Its name
will appear in place of the `%f' characters in the list of
arguments passed to the program.
`Files'
This adds `%m' to the command line. When the program is invoked a
file requester will prompt you to select a list of files. Their
names will appear in place of the `%m' characters in the list of
arguments passed to the program.
`Port'
This adds `%p' to the command line. When the program is invoked
the name of the ARexx port `term' uses will appear in place of the
`%p' characters in the list of arguments passed to the program.
`Device'
This adds `%d' to the command line. When the program is invoked
the name of the serial device driver `term' uses (see Serial
panel) will appear in place of the `%d' characters in the list of
arguments passed to the program.
`Unit'
This adds `%u' to the command line. When the program is invoked
the unit number of the serial device driver `term' uses (see
Serial panel) will appear in place of the `%u' characters in the
list of arguments passed to the program.
`Source'
This adds `%<' to the command line. When the program is invoked
the name of the drawer files to send should be found in (see Path
panel) will appear in place of the `%<' characters in the list of
arguments passed to the program.
`Dest.'
This adds `%>' to the command line. When the program is invoked
the name of the drawer files should be placed in when received
(see Path panel) will appear in place of the `%>' characters in
the list of arguments passed to the program.
`Screen'
This adds `%s' to the command line. When the program is invoked
the name of the public screen `term' uses (see Screen panel) will
appear in place of the `%s' characters in the list of arguments
passed to the program. *Please note that instead of the name of a
screen an empty string may appear.*
`Baud rate'
This adds `%b' to the command line. When the program is invoked
the currently selected baud rate (see Serial panel) `term' uses
will appear in place of the `%b' characters in the list of
arguments passed to the program.
`Connect. rate'
This adds `%c' to the command line. When the program is invoked
the baud rate the modem made the connection with will appear in
place of the `%c' characters in the list of arguments passed to
the program. *Please note that if the modem is not currently
online `%c' will produce the same number `%b' does.*
`Use'
Keeps the current settings.
`Cancel'
Discards the current settings.
For more information on the escape sequences introduced by `%' see
Escape sequences.
Signature panel
***************
`term' will let you choose from a number of predefined signatures
for use with file transfer protocols. Just pick the signature you need.
Please note that different signatures will be presented for upload and
download protocols. For more information on signatures, see Protocol
signatures.
Data transfer
*************
One of the important features `term' offers are means to transfer
data from one computer to another conveniently. This is accomplished by
using so-called XPR libraries and external programs which `term' will
invoke when necessary.
Data transfer via XPR library
=============================
The so-called XPR libraries implement one or more file transfer
protocols in the form of an Amiga shared library. They offer a
standardized interface for settings their protocol options and for
transferring data. Some XPR libraries will handle file transfers all on
their own, e.g. if the remote initiates an upload the XPR library will
respond by automatically starting a download.
Of particular importance is the `Default protocol' (see Transfer
panel). If you have selected an XPR library for this protocol, the
library will remain open during the entire `term' session. For the
Z-Modem protocol as implemented through `xprzmodem.library' this means
that the XPR library will automatically handle downloads when initiated
by the remote.
Data transfer via external program
==================================
`term' can make use of external programs for the purpose of
transferring data. Whenever the corresponding file transfer function is
invoked, `term' will try to run the selected program. While the program
is running `term' will temporarily halt its serial I/O processing, so
programs which permit sharing the serial device driver with `term' can
immediately pick up the ball and start transferring data. Please note
that this feature requires `term' to open the serial device driver in
shared access mode (see Serial panel).
Almost every external program will need a few command line options to
know its whereabouts, such as the serial device driver to use or which
files to transfer. You can provide this information by editing the
command line (see Parameter panel) to include special escape sequences
`term' will expand into data. The following line could be put into the
binary `Receive' text entry field:
run hydracom device %p speed %b line %c nocarrier rec %> get
This will invoke the `Hydracom' program which implements the Hydra
protocol which sports bidirectional file transfer and also adds a chat
option. This is what the line can expand into when `term' runs the
program:
run hydracom device TERM speed 38400 line 14400
nocarrier rec Work:Downloads get
`%p' expands into the ARexx port name `term' uses, `%b' into the
baud rate currently used, `%c' into the baud rate the modem made the
connection with and `%>' into the name of the drawer files received
should be placed in.
To complete this example, the following line could be put into the
binary `Send' text entry field:
run hydracom device %p speed %b line %c nocarrier rec %> send %m
When `term' runs this program, it will first prompt you to select the
files to send, this is what `%m' does. The files names will then appear
in place of the `%m' characters.
For more information on the escape sequences introduced by the `%'
character, see Escape sequences.
Please note that for `term' to find the external programs they must
either reside in the AmigaDOS Shell search path or need to be prefixed
by the complete AmigaDOS path their are located in.
`term' runs the programs in synchronous fashion. Some protocols, such
as `hydracom', however need to be run asynchronously. For such programs
it is recommended to prefix the command line with the `run' command.
Protocol signatures
===================
Some file transfer protocols sport automatic download and upload
functions. At the beginning of a data transmission they send a special
data sequence to the remote, indicating that the local side is ready
for action. This data is called a signature. With `term' you can assign
a specific signature to each upload and download protocol (see Transfer
panel). When `term' sees this signature in the incoming data stream the
corresponding protocol will be invoked.
A signature usually consists of a unique sequence of characters,
some of which may not be printable or visible on the screen. This is
why the standard command sequence syntax is employed for entering
signature text (see Command sequences).
You should avoid using a single signature for more than one
protocol. As `term' scans the input data stream it will always invoke
the first protocol which sports a matching signature. Signatures are
scanned in the following order:
`Default protocol (upload)'
`Default protocol (download)'
`ASCII upload'
`ASCII download'
`Text upload'
`Text download'
`Binary upload'
`Binary download'
Most transfer protocols use different signatures for uploads and
downloads. Hydra for example is an exception as it uses the same
signature for both purposes. Take care, it is recommended to use the
Hydra signature only for downloads. Some signatures, such as the
CompuServe Quick B protocol, use very simple signatures which consist
only of a single character. In the case of the Quick B protocol this
would be the `ENQ' character which is easily generated by spurious line
noise. In this case the protocol may start up expecting a file transfer
and find out rather soon that none is taking place. Although single
character signatures are supported it is recommended not to use them.
Some XPR libraries implement auto-upload and auto-download functions
all on their own. A common feature is that the signatures that trigger
these functions will not turn up in the input data stream `term'
receives as the protocols will filter them out. Consequently, the
`term' supplied protocol auto-invocation may not work. Be prepared to
handle this.
Escape sequences
================
When invoking external programs to use for transferring data `term'
will build a command line based upon the template given in the transfer
settings editor (see Transfer panel). This template can include special
tokens, known as escape sequences. Unlike the so-called command
sequences (see Command sequences) they are introduced by a percent
character (%) and can only be used with external file transfer
programs. Please note that you cannot mix command sequences with escape
sequences.
The following escape sequences are supported:
`%f (Single file name)'
Inserts a single file name when the program is run. A file
requester will open if necessary. If there are still files in the
upload queue (see File upload panel) and an upload is to take place
the first file name will be inserted and no file requester will
appear.
*Note: Case matters; %f inserts the file name along with its
complete path, %F inserts the plain file name only, omitting the
path.*
`%m (Multiple file names)'
Inserts a list of file names when the program is run. A file
requester will open if necessary. If there are still files in the
upload queue (see File upload panel) and an upload is to take place
their names will be inserted and no file requester will appear.
*Note: Case matters; %m inserts the file names along with their
complete paths, %M inserts the plain file names only, omitting
their paths.*
`%p (Port name)'
Inserts the ARexx port name `term' is currently using.
`%d (Device name)'
Inserts the name of the serial device driver `term' is currently
using (see Serial panel).
`%u (Unit number)'
Inserts the unit number of the serial device driver `term' is
currently using (see Serial panel).
`%< (Source drawer)'
Inserts the name of the drawer files to be uploaded should be
found in. This name will be different for ASCII, text and binary
transfers. The default protocol will always use the binary upload
path (see Path panel and Transfer panel).
`%> (Destination drawer)'
Inserts the name of the drawer files to be received should be
placed in. This name will be different for ASCII, text and binary
transfers. The default protocol will always use the binary
download path (see Path panel and Transfer panel).
`%s (Screen name)'
Inserts the name of the public screen `term' is using.
*Note: This may be an empty string. Be prepared to handle this.*
`%b (Baud rate)'
Inserts the baud rate `term' is currently using (see Serial panel).
`%c (Connection rate)'
Inserts the baud rate the modem made the connection with.
*Note: This value may be the same as given by %b if the modem is
not currently online.*
`%% (Percent sign)'
Inserts the percent sign.
How to set up Hydracom?
=======================
In case you don't know already what Hydracom is: it is a
bidirectional file transfer protocol which also sports a chat option.
It permits to send and receive data at the same time. So far, Hydracom
versions exist for the IBM-PC, the Atari ST and the Amiga of course.
With the introduction of `term' v4.0 an interface was added to the
Hydracom Amiga port to allow it to take over the serial I/O processing
from `term'. Note that this requires the Hydracom Amiga port revision 2
or higher to work.
`term' v4.3 will let you choose external programs for use as file
transfer protocols. Hydracom falls into this cathegory.
Please open the transfer settings editor (see Transfer panel) now
and press the button labeled `Page' three times until the page `Binary
transfer protocol' becomes visible. This page is divided into two
parts. The top half controls the upload protocol and the other half
controls the download protocol. To use the Hydracom external protocol,
now do the following: there are two buttons labeled `Type'. Press them
both twice until they show `External program'. This will make the
`Send' and `Receive' text entry fields available. In the `Send' field
enter the following line:
run hydracom device %p speed %b line %c nocarrier rec %> send %m
In the `Receive' field enter the following line:
run hydracom device %p speed %b line %c nocarrier rec %> get
The `Hydracom' command must be prefixed with the `Run' command due
to the way the protocol interacts with `term'. For other protocols the
`Run' prefix may be omitted.
Now close the window by pressing the `Use' button. Now Hydracom is
configured as the binary file transfer protocol. To receive files using
the protocol, select the menu item `Download binary file(s)', to send
and receive files at the same time (Hydracom is a bidirectional file
transfer protocol) select `Upload binary file(s)'.
If you wish to use the Hydracom signature (see Signature panel and
Transfer panel) to auto-start transmissions, you need to keep a few
things in mind. The signature is identical both for uploads and
downloads, but using it for both purposes is not a good idea. `term'
will always pick the upload signature first. Hydracom is a bidirectional
file transfer protocol which allows you to send and receive files at
the same time. This works only when invoking an upload, but not when
running a download. If you select a download signature you will lose the
bidirectional transfer feature. It is recommended to start transmissions
manually.
This setup will always let you transfer data only in one direction.
In order to take advantage of the bidirectional transfer feature Hydra
offers you will need to make use of two ARexx scripts that should have
accompanied `term'. You only need to modify the commands for `Send' and
`Receive' a little:
For `Send' enter:
AskUpload.term device %p speed %b line %c nocarrier rec %> send %m
And for `Receive' enter:
AskDownload.term device %p speed %b line %c nocarrier rec %> get
Before the transfer starts you will be asked whether you wish to send
and receive data at the same time or whether data should be transmitted
only in one direction.
Configuration hints
*******************
Admittely, `term' has more configuration options and settings than
you can shake a stick at. I have received a number of request to
explain where to start after installing the program:
1. Start with the serial settings (see Serial panel). `term' will
usually copy your current system preferences settings. If you
happen to know that they are correct and worked fine for you in
the past you probably don't need to make any changes. But if you
never were quite happy with the setup this is your chance to make
it fit.
As the lucky owner of a high speed modem to support all those
nifty compressing transfer protocols nobody knows how to pronounce
correctly (v.32/v.32bis/MNP/etc.) you will probably want to run it
at baud rates around 9,600-19,200 bps. If you choose to do so make
sure that the `Handshaking' switch is set to `RTS/CTS' or data is
easily lost during transmissions.
*Note: some modems will lock up if the `RTS/CTS' handshaking
protocol is enabled although they should support it. In most cases
the modem behaviour can be changed. First turn off `RTS/CTS'
handshaking (set it to `None'), then enter `AT&S0' and press
return, and finally turn on `RTS/CTS' Handshaking on again. Your
modem should now respond properly to your commands. To make this
change permanent, enter `AT&W' and press return to store the
current modem profile in its nonvolatile RAM.*
Older modem hardware usually supports only a fixed number of baud
rates, mostly up to 2,400 bps. Do not enable `RTS/CTS'
handshaking, leave it turned off. In fact if you don't turn it off
`term' will have trouble sending and receiving data.
Make sure that the baud rate fits and your modem supports it.
Modern modem hardware usually can adjust to the baud rate you
choose, older modems will send & receive illegible gibberish if
addressed at the wrong baud rate. Not unheard of are modems which
can communicate with the terminal program only at fixed baud
rates: while they are happy with 9,600 bps they might find 14,400
bps not at all worth responding to. I recommend that you try
several baud rate settings until one is found to fit.
If you don't want to use the built-in Amiga serial port hardware
you will want to change the device name and unit number settings.
Your I/O expansion hardware manual will tell you which name to
choose and which device unit numbers are valid.
The serial panel (see Serial panel) sports a number of additional
options. *Do not change them right now!* In particular stay away
from that sexy `High-speed mode' button and don't let the `Buffer
size' slider tempt you. Return from the serial settings to the
main menu by clicking on the `Use' button and save your current
setup back to disk using the `Save settings' menu item.
2. Proceed to the modem settings (see Modem panel) and take a look at
the switch labeled `Dial mode'. A modem usually dials phone
numbers either using a technique called `tone' or `pulse' dialing.
Technically, tone dialing requires your local phone net operator
(some kind of computer) to listen to a sequence of sounds which
represent the single digits of the phone number dialled. Pulse
dialing involves getting a number of electric pulses, each of
which represents a digit of the phone number, transmitted across
the line. Tone dialing is usually much faster than pulse dialing,
but it isn't supported all over the world. If the receiver of your
phone reports a number of beeping sounds when you dial a number
you can use tone dialing. If you hear rattling sounds it's
probably pulse dialing for you. Let's get back to the `Dial mode',
if you wish to use pulse dialing, set it to `Pulse', otherwise set
it to `Tone'.
Leave the rest of the modem setup as it is, do not change the
`Connect auto baud' switch.
3. Next, take a look at the screen settings (see Screen panel). This
is where you choose the terminal screen/window look and colours.
By default `term' is configured to open a plain four colour screen
using the Amiga default font. This should be sufficient unless you
plan to spend most of your modeming time in PC-driven BBSes which
keep throwing lots of colours at you.
Choose how many colours the terminal should use, the switch labeled
`Colour' will let you choose between `4 Colours (Amiga)', `8
Colours (ANSI)', `16 Colours (EGA)' and `2 Colours (Monochrome)'.
Each of these settings has a particular default palette attached.
The `Amiga' mode will use your current system default colours.
`ANSI' represents the choice of colours the ANSI committee
responsible for standardizing a certain terminal command protocol
to be the best given the constraints they had. `EGA' reflects
whatever the engineers who designed the first Enhanced Graphics
Adaptor card for the PC considered to be an enhanced colour
palette. `Monochrome' is my idea how an extremely simplistic,
while still readable colour choice could look like. Choose what
you find appropriate, but keep in mind that the more colours to
use the slower screen updates, scrolling and text output will get.
Also, a 16 colour high resolution screen will put your system
under additional stress if you are running an older Amiga model
which is not equipped with the AGA chip set. Careful please, any
changes you make will affect the performance of the program!
You might want to change the screen mode or the user interface
font. When you are satisfied with the setup, return to the main
menu.
4. Now it's time to edit the terminal settings (see Terminal panel).
This is where you control the basic behaviour of the terminal
emulation. If you wish to use an IBM PC style font for the
terminal display you can do so by changing the `Font' switch to
`IBM PC style'. Alternatively, you might find it worth changing
the `Text font' instead which is the font to be used for terminal
text output. Note that if the `Font' switch is set to anything
else but `Standard' your `Text font' settings will be ignored.
Well, actually they will not be entirely ignored, but the IBM PC
style font will be opened in the point size you selected.
Don't touch any other controls, return to the main menu when you
are finished.
5. If you are likely to visit a lot of PC BBSes, edit the emulation
settings now (see Emulation panel). You might want to turn on the
switch labeled ``CLS' resets cursor position', otherwise the
terminal screen might not get cleared properly when the BBS sends
the control codes it considers appropriate for this purpose.
Leave the rest of the setup as it is and return to the main menu.
6. The next step involves changing the path settings (see Path
panel). When receiving files on your machine you might want to
have them stored in a special drawer. You can do this by editing
the default download paths. Most important is the `Default binary
download path', I suggest to create a drawer called `Downloads'
within the drawer `term' resides in. Once this is done simply type
the name `PROGDIR:Downloads' and return to the main menu. The next
binary file downloaded will go into the `Downloads' drawer.
If you followed these steps `term' should be configured for the first
session. Save the current settings to disk now so you can always return
to this working configuration later in case the changes you made to the
current setup did not have the desired effect. You can try to fine-tune
your `term' setup now and change some of the options not covered in this
brief introduction, but please remember to keep your original
configuration file in a safe place, you will be glad you did.
Built-in terminal emulation
***************************
The `term' built-in terminal emulation implements the VT220 command
set with a few exceptions. There are no country specific character sets,
no down-line-loadable character sets, no user defined keys, no keyboard
language support and only ten function keys, not twenty (many of these
features are supported through the Amiga operating system). Most VT102
and VT52 commands should be supported as well, but since my
documentation on these command sets is rather incomplete I cannot be
entirely sure all the features are covered.
The numeric keypad and the four cursor keys can be switched into
applications mode if requested by the remote. The four programmable
function keys (also known as PF keys) are mapped to the top row of the
numeric keypad. When in applications mode these keys will generate the
codes produced by the PF keys on a VT102 terminal. If in standard mode,
you will need to hold down the `Control' key in order to make theses
keys generate the correct PF key codes.
The `Tab' and `Space' keys receive special treatment if a qualifier
key is held down when they are pressed. `Shift + Tab' will generate two
`Escape + Tab' characters. `Control + Space' generates the ASCII `NUL'
byte.
Text buffer
***********
The text buffer implements a service which continually stores text
displayed on `term's main screen, so the user can refer to it lateron.
General characteristics
=======================
The size of the text buffer is managed dynamically so that for every
new line which is read new memory must be allocated. So the size of the
text buffer is limited only by the amount of the available memory. It
is recommended that the text buffer is emptied periodically to avoid
using the entire free memory.
If there is insufficient memory to place a new line into the text
buffer, the first line will be deleted to make room for the new line.
Operation
=========
The contents of the text buffer can be paged through using the keys
for moving of the cursor (`Shift + Cursor' keys moves page by page,
`Control + Cursor' key jumps to the beginning or end of the text
buffer). Additionally, the numeric keypad keys are overlaid with jump
and paging functions (corresponding to the inscriptions/graphics on the
front of the keys).
There also is a pull-down menu available which is briefly described
below:
`Search'
A search function is called which scans from the topmost line on
the screen for the search text entered. If the search text is
found it is displayed and highlighted.
`term' remembers search strings entered. You can use the `Cursor
up' and `Cursor down' keys to recall previous input.
In addition to the search text there are a number of options which
may be specified when searching:
`Search forward'
If this switch is enabled `term' search from the topmost line
on the screen downward to the end of the buffer, otherwise it
searches upward to the beginning of the buffer.
`Ignore case'
With this switch enabled the search does not distinguish
between lower case and upper case characters, i.e. `TEXT' =
`Text' = `text', etc.
`Only whole words'
If this switch is enabled, `term' will search for whole words
only, not for parts of a word. For example, searching for
`term' with the `Only whole words' option enabled would stop
at the word `term', but ignore the word `terminal'.
`Repeat search'
Continues the search process started with `Search'. The previously
entered search text is carried over.
`Go to main screen'
Switches to the main screen of `term'.
`Clear buffer'
Clears the contents of the text buffer.
`Close buffer'
Closes the text buffer screen but leaves the contents unchanged.
Clipboard
*********
Cut & paste functions are available on the main screen, the buffer
screen and the review buffer. Here is how to use them:
`Buffer screen'
Use the mouse to point to the first character you wish to send to
the clipboard, hold down the select button, drag the mouse to the
last character you wish to copy and release the button. The text
marked will be transferred to the clipboard.
Holding down the `Control' key while clicking on a character will
feed the single character into the input stream, it will not be
buffered in the clipboard.
`Main screen'
Use the mouse to point to the first character you wish to send to
the clipboard, hold down the select button, drag the mouse to the
last character you wish to select and release the button. Select
the `Copy' menu item (see Edit) to transfer the text to the
clipboard. Instead of dragging the mouse you may also
double-click on a single word to select it.
Holding down the `Control' key while clicking on a character will
feed the single character into the input stream, it will not be
buffered in the clipboard.
`Review buffer'
Use the mouse to point to the first character you wish to send to
the clipboard, hold down the select button, drag the mouse to the
last character you wish to select and release the button. Press
`Amiga + C' to copy the selected text to the clipboard.
To paste the clipboard contents, i.e. feed them into the terminal
input stream, either select the `Paste' menu item (see Edit) or press
`Amiga + V'. In order to send the clipboard contents along with a
`Paste prefix' and `Paste suffix' hold down any `Shift' key when
selecting the `Paste' menu entry or when selecting text with the mouse
(this works both with the main screen and the text buffer screen).
Hold down one of the `Alt' keys and press the left mouse button to
make `term' emit a number of cursor move sequences which will position
the on-screen cursor at the spot where you clicked the mouse.
In standard text gadgets a solution had to be found to preserve the
line editing functions while still supporting menu shortcuts. To undo
any changes made press `Amiga + Q', to clear the text gadgets press
`Amiga + X'. Menus associated with the shortcuts `Amiga + Q/X' are
called by holding down any `Shift' key along with the `Amiga' keys
(i.e. `Shift + Amiga + Q' will select the `Quit' menu item if
available).
Command sequences
*****************
Each text sent directly to the modem is a command sequence. This
includes telephone numbers, modem initialisation strings, function key
assignments, etc. In addition to the normal text strings various other
commands are supported which will be described in the following section.
Backslash
=========
`\\'
Generates a single backslash.
`\0'
Resets the text pacing mode (see Clipboard panel) to the settings
defaults. Any changes of the text pacing mode affect only the line
to be sent. The next following line will be sent using the default
text pacing mode.
`\1'
Sets the text pacing mode to `Direct'.
`\2'
Sets the text pacing mode to `Wait for echo'.
`\3'
Sets the text pacing mode to `Wait for any echo'.
`\4'
Sets the text pacing mode to `Wait for line prompt'.
`\5'
Sets the text pacing mode to `Character/line delay'.
`\6'
Sets the text pacing mode to `Keyboard delay'.
`\a'
Executes an ARexx command (all text to follow this character).
`\b'
Generates a backspace (deletes the character to the left of the
cursor).
`\c'
Calls a main menu entry, the menu entry to be called is determined
by the argument to follow; this is either a six digit number
(example: `\c 010203' would call subitem 1, item 2, menu 3) or the
name of the menu entry enclosed in single quotes to call (example:
`\c 'about'' would call the `About...' menu entry, the search is
case-insensitive and only compares the characters given).
`\d'
Executes an AmigaDOS command (all text to follow this character).
`\e'
Generates the escape character (ASCII code 27).
`\f'
Generates a form feed (skip to beginning of the next page or clear
the screen).
`\g'
Places the text to follow this character in the clipboard.
`\h'
Appends the text to follow this character to the current clipboard
contents.
`\i'
Feeds the contents of the clipboard into the input stream.
`\n'
Generates a line feed.
`\p'
Feeds the password of the currently active telephonebook entry
into the input stream. *The password is automatically cleared for
security reasons when the connection is lost.*
`\r'
Generates a carriage return.
`\t'
Generates a tab jump.
`\u'
Similar to the `\p' command, the `\u' command will feed the
current user name into the input stream.
`\w'
Depending on how the `Dial mode' switch is set in the modem
settings, this command either produces `P' for pulse dialing or
`T' for touch tone dialing.
`\x'
Generates a break signal (as with the `Send break' menu entry).
`\^'
Generates a caret character.
`\~'
Generates a tilde character.
`\*'
The code to follow the asterisk determines the character to
produce. This can be any three digit number or a symbolic name
from the following list (1):
`NUL', `SOH', `STX', `ETX', `EOT', `ENQ', `ACK', `BEL', `BS',
`HT', `LF', `VT', `FF', `CR', `SO', `SI', `DLE', `DC1', `DC2',
`DC3', `DC4', `NAK', `SYN', `ETB', `CAN', `EM', `SUB', `ESC',
`FS', `GS', `RS', `US', `SP', `DEL', `SS2', `SS3', `DCS', `CSI',
`ST', `OSC', `PM', `APC', `NBS' and `SHY'
If none of the mentioned combinations is recognized the character
which follows the `\' will be fed into the input stream without any
changes.
---------- Footnotes ----------
(1) `EOU' may be implemented in a future release
Caret
=====
This character is used to change the following character to a
`control character'. So the sequence `^J' will become a Line feed and
`^I' becomes a tab jump. The character which follows the `^' has to be
located between `@' and `[', otherwise it is fed into the input stream
without changes.
Tilde
=====
This character causes the program to pause for exactly half a second
before it continues to process the following commands.
Fast! macros
************
In implementation and design the fast! macros are closely related to
the function key macros (see Function key panel). If invoked by
selecting the corresponding menu entry, a window will open on the right
hand side of the screen sporting a scrollable list of macros (the
contents of this list can be edited using the fast! macro panel). When
a list entry is selected, the associated command sequence (see Command
sequences) will be executed.
By using the fast! macros it is theoretically possible to control a
BBS just by mouse, provided that you have the approriate macros in your
fast! macro list.
The fast! macro panel can be resized and acts just like the main
`term' window: menu items can be selected and characters entered are
sent to the serial driver.
Packet window
*************
In this window a line can be edited before it is sent. All the usual
editing functions known from standard input fields are available
(`Shift + cursor left/right' jumps to the start/end of the line).
Additionally, some extended functions exist which are performed by
pressing a cursor key together with the `Shift' or `Control' key:
`Control + Cursor left'
Jumps to the next word.
`Control + Cursor right'
Jumps to the previous word.
`Cursor up'
Shows the last entered command in the input line.
`Shift + Cursor up'
Shows the very first command entered so far.
`Cursor down'
Shows the next entered command (if you moved back for some
commands before).
`Shift + Cursor down'
Shows the very last command entered so far.
This text gadget has a buffer where all previously entered commands
are stored (`Command history'). You can page through this buffer, load
and save it and individual lines can be recalled. As with the text
buffer this buffer is managed dynamically. The same memory restrictions
that apply to the text buffer are valid for this buffer.
The input line also has a menu which offers the following functions:
`Load history'
Loads the contents of the input line buffer from a file. Each
stored line in this file can be recalled and sent.
`Save history as...'
Saves the contents of the input line buffer to a file.
`Clear history'
Simply releases all previously stored commands and the memory used
by them.
`Other window'
Switches to the main screen of `term'.
`Show output'
If not enabled, this causes the input line not to be echoed in the
terminal window.
`Quit'
Closes the window (corresponds to clicking the close gadget of the
window).
*Every character entered into this window is shown immediately so
that those things where it is better that they should not appear on the
screen (like passwords for a mailbox) should be entered in another way.*
The contents of every input line are interpreted as a command
sequence and therefore can also contain control characters.
If a line taken from the input buffer is sent without change it is
*not* stored in the buffer again (`true history' such as known from
`ConMan').
The contents of the input buffer are cleared automatically after the
window is closed. *Under no circumstances are the contents maintained
until the next call!*
Provided that the packet window is large enough, a list to contain
the command line history will be displayed.
Chat line
*********
The chat line is roughly functionally equivalent to the packet window
(see Packet window). However, there is no special pull-down menu and no
option to save or load the command history. Unlike the packet window
the command history is kept between invocations.
The chat line is, as the name says, a text entry field which allows
one single line of text to be entered. Except for the optical
appearance and the handling of control characters (the text entry field
appears as a single line above the status line, it's also a tad smaller
than the packet window) it is virtually identical in handling with the
packet window. The only exception is the special key combination to use
when clearing the entire past command history. To clear the history,
hold down either `Amiga' key and then press either the `Del' or the
`Backspace' key.
The chat line always passes control characters, such as `Control + C'
and `Tab' straight through to the modem.
Script recording
****************
`term' offers a feature called `Script recording' which lets you
record incoming data sent by a BBS or a remote host and your response
to it, i.e. the text you typed, such as login name and password. The
recorded data can then be saved to an ARexx script file which can be
used as an auto-login script. In order to record a script you can
either use the dialing panel button labeled `Start recording on
connection' or the menu item `Record'.
Once `term' is recording terminal output and your input the status
display will show `Recording' or `Rec.line', depending on the text
entry mode. By default `term' will only record single keystrokes, which
makes it difficult to enter whole words. If you want `term' to remember
the entire line of text you are about to enter either use the `Record
line' menu item or press the `shift+return' key combination: the status
will change to `Rec.line'. To return to keystroke recording just press
the `return' key or select the `Record line' menu item/press
`shift+return' again.
`term' only remembers the last ten characters sent and a maximum of
256 characters you can enter per line. If you enter more than this
number of characters older keystrokes will be discarded.
When you are finished recording the script select the `Record line'
menu item. A file requester will ask you for the file name to save the
script under. If the file is successfully saved you may be asked whether
you want the script file to be used as a login script for the currently
active phonebook entry.
*To make sure that the script associated with the phonebook entry
will be called the next time you dial it the phonebook file must be
saved to disk before you quit `term'.*
The script file generated will consist of ARexx commands `term'
understands, mostly `TIMEOUT', `WAIT' and `SEND'. The text to be waited
for and to be sent is given in standard `term' command sequence
notation. For more information consult the chapter entitled Command
sequences. The `term' ARexx interface documentation provides the
necessary background to explain how the script commands work, it should
also give you hints how to customize the recorded scripts.
*Caution:* scripts recorded by `term' usually need additional
editing, don't expect a script to work right away. You may want to
change the timeout values, remove extra characters and input.
term and Emplant
****************
You need to keep a few things in mind before you actually try to use
`term' with Emplant, the Apple Macintosh emulation and the on-board
serial ports:
1. Both the emulation and `term' are very demanding programs in terms
of memory usage. The Macintosh emulation will allocate a fixed
memory area for itself which normally should be as large as
possible. `term' has to use the amount of memory that remains,
which may not be much. It is recommended that at least 3-4 MBytes
of memory should be available when you start `term'. Although the
program will show an error message if it cannot allocate enough
memory the external modules (terminal emulation libraries, file
transfer libraries, serial device driver, etc.) may not work
properly under low memory conditions and thus can cause software
failures. You should reduce the sizes of the many memory buffers
`term' uses to perform its functions, such as transfering files
and capturing text. For example, the text buffer will keep growing
until all available memory is exhausted unless you set a maximum
limit for its size (see Capture panel).
2. `term' can share the device driver selected for the I/O ports with
Emplant. For example, if you select `serial.device' as the driver
to use for `Port A' Emplant will open the driver in shared mode.
In `term' you would select the `Shared access' switch in the
serial settings (see Serial panel). When both programs are up and
running you must make sure that only one program at a time will
access the serial device driver, or data may be lost. For example,
if you have `ZTerm' and `term' running and wish to use `ZTerm' for
communications you *must* make `term' release the serial device
driver (use the `Modem' menu item `Release serial device' for this
purpose). Likewise, if you wish to use `term' instead of `ZTerm'
or some other terminal program on the Macintosh side, make sure
you quit the Macintosh terminal program first.
Take care, LocalTalk can have a negative effect on the serial data
transfer performance.
3. If you connect one of the Emplant serial ports to your modem you
should know whether the connector pins that are used for 7 wire
hardware handshaking (RTS/CTS handshaking) are properly connected
or not. Some cables that are sold for use with Hayes modems or the
Apple ImageWriter do not have the necessary pins connected. If you
wish to use the RTS/CTS handshaking protocol (see Serial panel),
set the handshaking mode to `RTS/CTS (Check DSR)'. This insures
that `term' will run properly even if your cable cannot be used
for RTS/CTS handshaking. Your Amiga may lock up if the cable does
not support RTS/CTS handshaking and you have `RTS/CTS' selected as
the handshaking protocol.
4. It is unwise to use `empser.device' while the Macintosh emulation
is running. Since the Macintosh drivers are unaware of the Amiga
side trying to access the serial port hardware conflicts are not
to be avoided. Either use `term' with `empser.device' or run the
Macintosh emulation, you cannot do both at the same time.
term and SLIP
*************
If you are brave enough to use `term' to dial into your SLIP account,
you should make sure that your modem does not hang up when you leave
`term' and hand control over to your SLIP software. Typically, closing
the serial device driver causes the DTR signal to drop which some modems
interprete as an immediate command to abort the connection. This signal
is automatically dropped when `term' is terminated.
To avoid this problem, consult your modem manual for information on
a command that controls how the modem reacts when the DTR signal is
dropped. For a ZyXEL modem this would be `AT&D0'. Put the command
`AT&D0\\r' into the modem init command field (see Modem panel) of the
phonebook entry you use to dial into your SLIP account.
Environment variables
*********************
Information which is to be available the next time the program is
run is placed as AmigaDOS variables in the directories `ENV:' and
`ENVARC:' by `term'.
The variables used by `term' can be used and manipulated by other
programs transparently. In detail these variables are:
`TERMCONFIGPATH'
The name of the drawer in which all information used by `term' is
placed (standard configuration, phonebook, etc.). The default
settings path name is `TERM:config'.
`TERMWINDOW'
The window definition which can also be entered in the program via
the menu item Settings.
`xpr...'
The standard settings used for the corresponding transfer protocol
(`xprzmodem', `xprkermit', etc.).
`xem...'
The standard settings used for the corresponding external terminal
emulation library (`xemvt340', `xemascii', etc.).
PGP key
*******
Below you will find my signed public key. Save it to a disk file and
enter `PGP <file name>' to decode it. This will produce a file called
`public_key'. To add my key to your PGP keyring now enter `PGP -ka
public_key' and follow the instructions on the screen. To verify my
signature, now enter `PGP <file name>' again. It's probably pretty
paranoid to rely upon PGP signatures and keys, but then again you might
want to have a somewhat unambiguous proof that the distribution
archives you have downloaded are intact. Security can still be
compromised, if you don't trust the key below you can still contact me
to ask for an official key.
-----BEGIN PGP MESSAGE-----
Version: 2.3a.2
owHrZAhlYmXQEzvfldcZOadb3WIiI+OGm4y/2ZdpeDIxcR1o4V/elrPHvuTZjnbV
f54d6g++Trl1qJz/35uNVg33GSfvfzH7lnVo/ZWHVwsuOTq+TDSZsnXTx5eGFyzW
MkolcRWUJuVkJsdnp1YyAIEuCDi5unv6KQS4BygEhDr5eDoreLtGKjj5+Dt7g6W5
wlKLijPz86wUjPSME/WMuLhyA538HDMrnSzMIh0dHV2dHX0yywxCSkNSvQKqnHKy
vHIynUvK8lyKU/XLsyJNvFKrynJLfLKN07RDk6NM0wrDuNK9QyO8MgIjw4NMzS2M
03MKCx1DHNOLfPxNI72T8nOi8jyL8/y9XB2dgtwNfFwtiyPDI9MjgXSyUVipV6WT
M1dkhJdBontYsadLRVmSh19OUrZTVZJxWGWkUVhlarBpfmS4SWmUe6g2l61prkEq
F9gfrn4ueDwJAA==
=kKr7
-----END PGP MESSAGE-----
PGP-encoded mail is not welcome at my internet site!
Revision history
****************
Changes introduced with v4.5:
*****************************
* Added a bunch of new OwnDevUnit options:
`Do not use if device is in shared mode'
This used to be the default in v4.4. I've had a few good
ideas in my life, this wasn't one of them. Now it's a
configurable option [Andreas Kirchwitz].
`Release device when online'
The default behaviour used to be not to let go of the device
if you are still online. But perhaps this is just what you
want. Now you can.
`Release device when dialing'
If your uucp netcall catches you off guard while `term' is
still dialing and not getting anywhere, this switch will tell
`term' to let go of the device driver. Please note that
`term' will not start to redial when the device becomes
available again.
* The OwnDevUnit choices are now radio buttons rather than one wide
cycle gadget [Chris Hanson].
* The character conversion tables now show the numeric codes of the
characters in several flavours (binary, octal, hex, you name it)
[Chris Hanson].
* The text buffer screen now gets the colours right even if it opens
in 32K/64K/16M colours [Frank Mariak].
* The "RTS/CTS (DSR)" handshaking mode now causes the device to be
opened with RTS/CTS handshaking enabled before the DSR signal is
checked. As it turns out, it didn't work the other way round.
* Major new addition: for easy debugging and the shocking good looks
of it, there is a new window to enter single characters
graphically. It's called "Single character entry" and sports a
button for every ISO-8859-1 character on this world. Click on the
character you want (yes, there's a neat BOOPSI gadget behind it)
to get it sent [Chris Hanson].
* The XPR interface now uses a different approach to read data from
the serial line. The overhead involved is much lower than in all
previous `term' releases.
* The dialer sent the modem exit commands on very rare occasions
only, it now does it consistently.
* Lots of minor changes in the user interface code.
* The single character entry window came out black on black in 16
colour mode [Frank Dürring].
* While I was updating the single character entry window I added a
code display. While you pick the character its code appears in
decimal, hexadecimal, octal and binary in the window title bar.
* The "SEND LITERAL" ARexx command now works as it should [Maxwell
Daymon].
* The windows menu now gets properly updated after the main
screen/window is closed and reopened.
* Freezing the buffer via the capture settings and saving them as
your default settings never caused `term' to start up with the
buffer frozen, it now does [Geoff Seeley].
* There are now two different ways of getting data into the capture
buffer. The old way of doing things (data flow) and a special
procedure that stores all the data that gets scrolled or erased
from the screen (review). The latter is more faithful to the
general concept of a review buffer, but the catch is that you
won't see the current contents of the main window. Not all the
hooks & lines are in there yet, for example erasing characters in
a single line is something the buffer does not track. The code is
already in there, but it's commented out. Please let me know if
you need it.
* Another addition to the modem settings: if your phonebook entries
don't use special modem configurations (in other words, they use
the main modem configuration) and you have some modem
initialization and cleanup commands in the main modem
configuration you do not want the modem to receive while it is
dialing, you can now tell `term' not to send them.
* Mucked around some more with the character raster code that backs
cut & paste in the main window. Some optimizations in the code,
responsible for clearing the screen when scrolling or erasing
text, were not that reliable.
* The dialer was releasing the device driver by request of the
OwnDevUnit.library even if it had been configured not to yield it.
Even worse, the dialer did not pay attention to whether it should
release the device on request while dialing or not [Andreas
Kirchwitz].
* Another one bites the dust: the text cut & paste feature supported
by the main window no longer gets the terminal emulation into
trouble when double-clicking on a word while there is still text
selected [Andreas Kirchwitz].
* The transfer panel now finds resident commands given for the
external transfer protocol programs to invoke [Andreas Wolff].
* The transfer menu no longer gets ghosted if the default protocol
is not an XPR library but an external transfer protocol [Andreas
Wolff].
* The `Upload' buttons found in the upload queue window now cause
the current transfer queue to be sent even if it consists of only
a single file [Andreas Wolff].
* Changing the default transfer protocol from xpr library to
external program can no longer bring the machine down.
* `term' no longer bangs its head if you accidentally pick an
external transfer program and leave the type of transfer protocol
set to "XPR library". It now manages to display the error
requester without crashing or trashing its own stack [Sven Reger].
* The `improved' XPR serial I/O code was pulling far too much CPU
time. Bob Maple reported about 45%, on my setup it was about 25%
which I thought was pretty normal. I went back to the old code
and streamlined it a bit, it's now down to about 5%, so the 25%
were not that normal after all [Bob Maple].
* `term' no longer tells you that the function keys, translation
tables, cursor keys or hotkeys have been changed on exit if this
is not really the case [John Yeung].
* The translation table editor lost the "Cancel" gadget, there
really was no code backing it and thus Use and Cancel always got
the same treatment.
* Finally fixed the "No DSR signal detected" problem. I promise.
* The modem dialing prefs now sport two new options which will
hopefully simplify dialing through a local PBX. The "PBX dial
command" will get inserted between dial prefix and phone number if
the "Use PBX dial command" switch is enabled. By default the PBX
dial command is set to "0,,," which will first send a 0 to dial
out, then wait about six seconds (each comma tells the modem to
wait a certain number of seconds; exactly how many seconds to wait
can be configured through a modem register, on the ZyXEL U-1496
this is register S8 which is by default set to 2) before starting
to dial the `real' phone number.
* Renamed "Verbose dialing" (silly name) to "Show modem responses".
* Another rogue attempt at improving data throughput in the XPR
sread routine. I'm wondering if this has any positive effects, or
as usual does not work as reliably as it really should.
* Caught some more cases in which the return code of ModifyIDCMP()
was plainly ignored. Now all of them are covered.
* The transfer performance window now gets properly backfilled,
especially if the window opens on a 16 colour screen under
Kickstart 3.x.
* The Fast! macro window now always opens in a useable state. This
was not always the case in previous releases if the main window
had the wait pointer set while the new window was about to get
opened [Andreas Wolff].
* Put the old code back into xpr_sread. Somehow none of my attempts
to improve things in this area seem to bear any fruit [Martin
Berndt].
* Fixed the delete line ("Esc [ <n> L") and insert line ("Esc [ <n>
M") commands which were really broken in one special case, which is
if more lines were to be deleted/inserted than the current
scrolling region would hold. This code never worked in all previous
`term' releases (it would clear the entire screen, not just the
part covered by the scrolling region), but this time it really
crashed [Andreas Kirchwitz].
* Unified review buffer and text buffer. Both services now share the
same code and more or less the same features. This has its
drawbacks and advantages. I really don't want to return to the old
console.device style review buffer implementation, so you better
get used to the new way of doing things ;)
* Changed the layout of the translation panel buttons [Stellan
Klebom].
* When using an external transfer protocol program, prefixing the
program name with "run" no longer causes the name of the transfer
protocol to be reported as "Run". The "run" command is now skipped,
hopefully causing the name of the program to be executed to show
up.
* The transfer configuration now by default gets the standard Hydra
invocation commands copied into the binary protocol entries.
* Changing the default transfer protocol to an external program did
not always cause an immediate update of the status line, it does
now.
* Better ARexx script recognition within the transfer settings
control panel. Previously, in order to have ARexx scripts
recognized they had to have their executable file protection bits
cleared.
* Changed the way the default buttons look like. Now, what do you
think?
* Removed some historic rubble from the screen settings editor which
caused screen display modes to be sorted out that would offer less
than 640 columns in their default resolution [Russ LeBar].
* Shuffled the controls in the serial and modem settings editor a
bit [Russ LeBar].
* New sort algorithm for phonebook and friends.
* All new phonebook. This change is massive and most likely to
attract the usual kind of trouble. No documentation exists for
this new part of the program yet, sorry. I haven't decided yet how
to implement certain features, such as what the checkbox next to
the "Rates" settings will do.
* Fixed another load of bugs in the user interface support library.
* If the single character entry window fails to open, the checkmark
near the menu item gets cleared.
* The phonebook now uses the brand new popup gadgets.
* Reassigned some keys in the phonebook [Russ LeBar].
* Brought back the v4.3 style xpr_sread routine. Please give this a
test and tell me if file transfer reliability improves.
* The phonebook window will no longer expand to display 20 lines of
text if there are less than these few entries in the phonebook
list [Chris Hanson].
* The phonebook window will grow in the horizontal direction to make
more room for the single phonebook entries [Andreas Kirchwitz].
* Just for fun, added support for VT52 escape sequences. Except for
"<ESC>^" and "<ESC>_" all should be properly implemented.
* Duplicating an entry in the phonebook would discard special item
tracking information in the new entry created, this has been fixed.
* When saving a phonebook file, the currently highlighted group will
be saved along with it. The next time the file is loaded, this
very group will appear in the listview as the active group again.
* `term' now reads the system screenmode, serial and font
preferences to establish its power-up defaults.
* The "RECEIVEFILE" ARexx command never paid any attention to the
file name you could optionally provide, now it does [Stefan Falke].
* If the serial device driver is released on request by
OwnDevUnit.library you now get the choice to return to `term', to
iconify `term' and to quit the program [Christian Hechelmann].
* New options for the phonebook: you can now define which phonebook
entries should go into an auto-dial list which `term' will start
dialing right after startup. In addition to that, you can also
tell `term' to keep redialing each entry in the list until it hits
the last entry, which will cause it to exit. In order to stop
this, either hit cancel in the dialing window, or turn off the
"auto exit" feature in the phonebook/clear the dialing list. Last
but not least there are new command line options/tooltypes to
select a particular phonebook file to use and to turn on the auto
dial and auto exit features even if the phonebook was saved
without having these enabled [Don Schmelling].
* The emulation settings now allow you to select how `term' responds
to device attributes and identify commands. The options include
VT200 (the default), VT102, VT101 and VT100. This option does in
no way affect how the terminal emulation operates, i.e. if you
switch to VT100 `term' won't ignore VT220 commands. Only the
responses are affected [Rich Jesse].
* Phonebook loading severly broken when using file prefs, fixed now
[Martin Berndt].
* With the phonebook file format changes the XPR library name was
left blank. This in turn caused an unsigned counter variable to
flip, and `term' enventually started to spin into the void...
Fixed.
* Changed the look of default buttons again. They are no longer
quite that bold, but now the label text is.
* Creating a new group now also updates the group label.
* Page #3 of the emulation settings was missing, it's back again now.
* Changed the layout of the phonebook buttons again [Chris Hanson].
* Moved the phonebook sort options into a separate control panel
[Russell LeBar].
* Added memory allocation debugging code. To enable it, do the
following:
setenv termprealloc <byte count> setenv termpostalloc <byte count>
For <byte count> insert the number of bytes to put before and
behind all memory allocations `term' makes. The numbers will be
rounded to multiples of 16. Please note that if you don't choose a
prealloc value, the debugging code won't kick in. If you omit the
termpostalloc but specify a prealloc value, `term' will use a
default of 16 bytes as the postalloc value. To make things more
interesting, once you've enabled the debugging code `term' will
fill all its memory chunks not allocated with MEMF_CLEAR with
$DEADBEEF. When using the debugging code, please run SegTracker
and Sushi (preferably with a 128K buffer) in the background and
capture its output to a file. Oh, by the way, `term' will also
remember the largest and smallest allocation made. I plan to add
texture mapping to the spheres in the future.
* Implemented DECANM and VT52 "Enter ANSI mode" commands. Both the
VT52 and the VT220 emulation use the "<ESC>H" command for
different purposes. The implementation now honors the mode in
which the emulation operates [Andreas Kirchwitz].
* `term' no longer forgets about the location of the cursor key,
translation, etc. files and assumes that they are to be found in
the default locations [Andreas Kirchwitz].
* Added a new raw file capture mode, so one can make verbatim file
captures without having to go through the capture settings and
locate the right switch.
* Phonebook entries tagged to go into the quickdial menu which are
placed in groups now appear in submenus of the quickdial menu. If
all the entries come from just one single group, however, no
submenus will be created.
* Fixed some more bugs in the popup and menu layout code.
* You can now rename groups by tagging all members of the group and
clicking the "Make group" button. In the requester to pop up,
enter the new name of the group [Russell LeBar].
* The text buffer display code crashed under v2.04. After chasing it
for three hours it finally surfaced in the scrollbar creation
code. Thanks go to Peter Banville for being so persistant :)
* The XPR init code was throwing the wrong library names in case the
setup went wrong. Fixed.
* In the phonebook, clicking on the "rates" settings checkbox now
does something sensible. If the button gets ticked, it will receive
default rates settings. If the checkmark is cleared, all the rates
settings associated with it will get zapped.
* "Dial" is now the default button for the phonebook user interface,
I also edited some phonebook gadget labels a bit [Chris Hanson].
* The phonebook window title now keeps track of the number of
phonebook entries and those which are tagged [Andreas Kirchwitz].
* The "Select by pattern" code had the selection mode reversed, i.e.
"tag matching entries" would untag entries, even if they weren't
tagged - with all the usual consequences (can you say "BANG"?).
* Sorting single groups would trash large amounts of memory (Russ
was right), as the array to be sorted would hold only a single
entry, a memory allocation of the wrong size took place.
* The editing window now responds to the cursor left/right keys,
hold down any shift key to move to the beginning or the end of the
list.
* "Sort" is now the default button for the phonebook sort panel,
this used to be "Sort+Close".
* Rebuilding the main menu did not protect itself well enough
against changes in the quick dial menu area, which could cause
lots of Enforcer hits and worse.
* The menu builder would depend on the order of phonebook entries to
go into groups. It no longer does, I also removed the limitation
of the maximum number entries to go into the quick dial menu.
Watch out, if `term' runs out of space it will fall back to the
default menu layout without telling you what went wrong.
* The phonebook entry edit window now sports a "Hide" checkbox which
is by default checked. If checked, the window won't display or let
you edit the user name and password [Russell LeBar].
* Cleared out a lot of dead code, this cut the program size a bit.
* In sixteen colour mode the default text rendering colour is now
colour #7, this used to be #15 (i.e. #7 with highlighting). This
makes colouring more consistent with the ANSI specs and avoids
silly "white on white" rendering.
* `term' now requires gtlayout.library v24 to run, so make sure you
have it installed.
* Replaced all cycle gadgets that were acting as page selectors by
the new tab gadgets. I'm still not entirely happy with the visual
design of these, point & click is also a bit difficult if the tabs
are overlapping one another. The [Tab] key still moves you through
the single pages, plus there is a new feature known as "strumming",
i.e. you can hold down the mouse button and drag the pointer across
all tab tags to see which choices are available. The tags will
appear to be plucked out a bit while you review them. When you let
go of the mouse button the tag you are currently viewing will
become the active tag and the page will be rebuilt. FYI, the tab
gadgets will eat a lot of chip memory, please keep an eye on this
and let me know if this is a problem for you.
* At the end of an upload through the built-in ASCII transfer
routines `term' would invoke the download macro [Mirko Lukas].
* Flipping through groups in the phonebook did not update the
"current" entry counter, in fact the code was forgetting about it
but did not show this in the user interface.
* No longer uses buffered I/O when talking to the printer device.
* Shuffled the buttons in the phonebook window again [Russell LeBar].
* The tab key wasn't flipping pages properly in the transfer protocol
editor panel [Russell LeBar]. The same was true for the internal
ASCII send/receive setup panel.
* More label and menu changes to support the tab gadgets [Russell
LeBar].
* Small visual changes to the tab gadget tags; there are now fine
separators lines around the edges.
* Added a shortcut to the emulation settings to make the emulation
BBS-ANSI compliant. Just hit the checkbox to have the relevant
options updated. It ought to update the terminal options as well,
as a typical BBS-ANSI display measures 80x25 characters and most
likely uses the IBM PC style font. However, it doesn't since this
goes beyond the scope of this settings editor.
* The menu layout code did not handle submenu items properly that
would end up at the end of the menu list and would need to be
shifted around in order to avoid having their hit boxes hang over
the right screen border. This was tough to fix and even tougher to
find in the first place...
* Finally (!) caught the
not-quite-that-rare-but-still-very-surprising case in which the
font sensitive layout gadget procedure within gtlayout.library
would loop forever without getting anywhere. This was happening
frequently when using topaz/8 as the user interface font and with
screen resolutions that did not support overscan. Note that
`term' will try to open a screen in the right size, but if the
requested screen size is unavailable, it may decide to open the
window anyway, even if this causes gadgets to hang over the window
borders. Much better than not opening the window at all, or what
do you think?
* The tapedeck control button images now have a minimum size limit,
so they look proper on low resolution displays.
* The single menu strips are once again placed closer together. A
total of two pixels in between neighbouring strips is used.
* Fixed the other control sequence that was used both by the VT220
emulation and the VT52 code ("<ESC> D") [Matthias Scheler].
* Caught a very rare bug in the phonebook. If no phonebook file was
loaded, and if you were loading a new phonebook file to include
groups, using a special default group, `term' did not get the
group display and the phonebook list right. Hitting any entry would
invariably cause two more or less harmless Enforcer hits.
* The screen displaymode picker revisited. I killed the filter, but
the minimum size tags remained.
* The commands to change the text size (DECHDL through DECDWL) could
enable the text cursor too early, which would leave ugly artifacts
on the screen. This would rarely happen in real life as the speed
at which data had to be fed into the emulation was far beyond
100,000 chars/second to make the bug manifest itself.
* Alas, more changes. This time I combed the screen settings editor
for dead code and indeed found a lot, plus certain routines I must
have written while I apparently was not fully conscious. The editor
frequently cancelled the wrong pages, did not update the colour
palette when switching colour modes and moved in utterly strange
and mysterious ways when trying to determine whether the user
should be allowed to change the colour palette. In a nutshell,
your basic waste of code, time & reliability.
* Minor changes to the serial and terminal settings editors.
* Part of the list management was badly broken, this affected in
particular the upload list handling (the ARexx upload list, not
the upload queue that has its own window). I'm not absolutely
certain, but after going through the code for more than three
hours I am no longer able to get the machine to crash through the
ARexx "SENDFILE" command. It appears that the bug is fixed. Could
you give this a try, Chris?
* Caught some more cases in which list and node management routines
could corrupt memory.
* The ARexx "SENDFILE" command was sending the upload macro twice on
exit.
* Some text buffers handed over to dos.library in order to retrieve
file names were not quite as long as `term' told dos they were.
This could cause the usual kind of trouble, but only with very
long file names.
* The dialer did not update its OwnDevUnit watcher status when the
serial device driver or the ODU options were changed.
* Untag/tag by pattern was still broken, leading to weird select
states in the phonebook.
* Swapped the "Use" and "Copy" buttons in the phonebook [Chris
Hanson].
* Made the left button row of the phonebook a little smaller by
changing the "Exit when finished" checkbox label to "Auto exit".
Not that elegant and doesn't even avoid that the phonebook comes
up on its own screen with a 640x200 sized display, but at least
there is no longer so much of the window hidden from view. The
only way to make the window a bit smaller would be to rename
"Pattern..." to "Select..." or something, but I cannot do this
anymore as the catalogs have been sent to the translators already
:(
* The checksumming code did not hit a nul-character, causing the
startup to take much longer than necessary. It could also cause
`term' to crash upon startup for no apparent reason.
* Finally (!) managed to fit the phonebook on a 640x200 sized screen.
The button size precalculation was using the wrong button data. It
did not take the modifications of the phonebook button arrangement
into account that took place in the previous betas.
* Squeezed a few more bytes out of the user interface support library
code.
* Fixed non-reentrancy problem with the user interface support
library.
* Gave `term' a test on an old A500plus. It runs on an 68k Amiga with
2 MBytes of main memory, but not very comfortably.
* The grouping window in the phonebook did not always close when it
had better closed down. Now it does.
* Removed the font scale button from the emulation setings which came
back when I restored page #3.
Changes introduced with v4.4:
*****************************
* Threw out the optimized scrolling code. It could slow things down
on slow computers and wasn't working particularly well either.
* Removed the code that did the jump scrolling by taking a look at
how many line feeds were received in one go. This could slow
things down and interfere with on-screen rendering, such as with
on-line games like "Perihelion".
* Now uses gtlayout.library v13 to layout the menus; now many more
menu items and menus fit onto small screens.
* Screens and windows now open large enough for the status line
display to fit.
* Put the optimized scrolling code back in. It should now be able to
behave itself in an orderly fashion.
* The screen saving/printing code is now smart enough not to include
the status line in the bitmap that it is going to be output.
* The phonebook now uses a fixed-width font when running under
Kickstart 2.04.
* The status line display boxes are a bit wider now, so hopefully no
data will be cut off any more.
* Simplified the jump scrolling code a bit, eliminating another
level of data filtering. This should remove the odd slowdown that
would occur when the modem delivered a large chunk of data.
* Changed the way the download procedure queries how much space is
still left on the destination filing system. This time it should
get it right.
* Fixed a weird memory alignment problem in the double-buffered file
handling code.
* Saving/loading the fast macro settings is now properly remembered,
so `term' will no longer tell you that the settings have been
changed upon exit unless they have really been changed and not
saved to disk yet.
* In the paged settings editors for screen, terminal and capture
prefs the displays for screen mode and font no longer auto expand
with their contents.
* Insert mode now works properly again [Andreas Kirchwitz].
* Fixed an Enforcer hit in the emulation settings when called from
the phonebook [Matthias Scheler].
* Fixed locale string lookup bug in file identification code, also
added PNG file signature.
* `term' no longer refuses to dial out if the modem is still online
and the `protective mode' is enabled. In this case, a requester
will pop up and ask you if you want to hang up the line before
dialing out.
* Small fixes for deep CyberGfx screens (15 bits and up).
* The check to see if the serial device driver you picked from the
list did really exist was looking at the wrong buffer.
* The dialer checked for modem errors, but the scanner responsible
for catching the modem message never actually passed this
information to the dialer.
* Changed the machine readable version number string; it now includes
information to explain for which type of machine the program was
compiled.
* Added new "Direct connection" option to the serial settings. If
enabled, this switch suppresses RTS/CTS warnings and disables the
carrier check. This is useful for direct nullmodem connections and
for using the Amiga as a dumb terminal.
* Moved the "Alert" switch from the terminal settings to the
miscellaneous settings. This made it necessary to bump the program
revision number to v4.4.
* You can now configure the opening size and position of the
standard asl requesters (file, font, display mode) in the misc
settings. Just select the positioning mode you want (centered or
placed relative to the top left corner of the main window) and
click on the "Edit..." button. A file requester window will open.
Drag it to the position you want and change its size if necessary,
then click on "Use". `term' will keep position and size as default
values for the requesters to open.
* Rearranged some settings editors, made some room between
neighbouring radio buttons and checkboxes, added `Tab' key support
to some editors which were missing this feature.
* The notorious screen cloning feature did not work in previous
releases, in fact gtlayout.library was broken in many ways and
badly needed updating [Klaus Dürr].
* Added LZX archive file type.
* Sorry, no speedbar in this release, I just currently don't have
the time to do it :(
* Added another character send delay option, this time to the modem
settings. Some weird east-asian built v.34 compliant modems will
happily operate at 57600 baud, but get into real trouble when
receiving plain modem dialing and initialization commands. The
characters come in just too fast. A little delay between the
characters being sent may help.
* The `about' window now sports scrolling credits.
* The phonebook will no longer load empty configuration items (key
macros, fast macros, etc.) to edit if the names of the files are
not given.
* Due to a bunch of internal changes in order to support scaled
characters in more consistent fashion, the option to select
half-width characters was removed from the emulation settings. Cut
& paste with non-normal sized characters still does not work
properly on the screen.
* Redid the logic for the RTS/CTS (DSR check) handshaking mode.
`term' now opens the serial device driver with RTS/CTS handshaking
disabled, checks the DSR signal and then if necessary closes the
device driver and reopens it with RTS/CTS handshaking enabled.
* `term' no longer locks the serial device driver for exclusive
access through OwnDevUnit.library when told to open the driver in
shared mode.
* Loading the configuration and then choosing "Save configuration"
from the main menu will save the current settings under the name
of the configuration file loaded last.
* The cursor key control panel now sports a "Default" button.
Changes introduced with v4.3:
*****************************
* Fixed an Enforcer hit in the code that would open the file
transfer window in case of error.
* Colour palettes are now 24 bits wide (in reality even 96 bits, but
the user interface does not support this precision).
* Added support code for AmigaUW terminal window resizing.
* Fixed another bug in gtlayout.library which would cause trouble
with palette editor gadgets using only two colours.
* Fixed another Enforcer hit in the XEM settings editor.
* Updated the screen settings editor. It no longer displays options
that cannot be changed.
* The "Dial number" function would use the wrong temporary buffer
when prompting to enter the number to dial.
* Opening the status window no longer causes crashes. It was the
call to DateStamp() and DateToStr() which caused the Task to
handle the status window to crash. It's a process now.
* Cut & paste while the chat line is active now works properly.
* The chat line is now unavailable if an external terminal emulation
is active.
* The dialing menu items now get properly disabled if the program
starts up in online state.
* Made the only (!) call in gtlayout.library which could cause
AmigaDOS to be called an option for Processes only. It will no
longer crash when called by a Task.
* When running under Kickstart 2.04, the screen overscan mode is by
default set to the text overscan size.
* The built-in ASCII transfer windows now also get size- adjusted in
order to avoid overlapping the status line.
* Added a startup notice to explain that *this* really is a beta
test release.
* The program now consists only of load hunks smaller than 100000
bytes each. This should make it possible to load the program even
if the system memory is greatly fragmented.
* Finally discovered why the rate panel editor would swallow the
first cost entry. Turning off the SAS/C global optimizer did the
trick.
* The chat line text could become unreadable with some text pen
choices. According to the BOOPSI documentation my original code
was correct, but I discovered that the ROM code actually expects a
different data format.
* The colour palette management code would not work properly under
Kickstart 2.04.
* Fixed three long standing bugs in the terminal emulation code. If
a command would erase/clear more lines/characters than the screen
would hold memory trashing was not to be avoided. This has been
fixed.
* An uninitialized variable in the colour palette setup code could
cause real trouble, crashing the machine almost instantly.
* The review buffer process did not protect itself against sudden
removal, leading to crashes after the review window was closed.
* The "READ CR" ARexx command now does again what it should do.
* The code that would cause Enforcer hits within rexxsyslib.library
was rewritten to use a different technique to tell free messages
and Rexx messages apart.
* The AmigaUW TTY resizing code would crash the machine if the
serial device was unavailable. This would happen for example if
the serial device driver did not open upon startup.
* The dialing window now displays which dial list entry will be
dialed next when in redial delay mode.
* `term' now properly allocates its work bitmaps when running under
Kickstart 3.x, previously it would occasionally fall back to
constructing bitmaps on its own which could cause speed penalties.
* Another one bites the dust. Found a really long standing bug in
the double-buffered file routines. Can you say buffer trashing,
memory losses, crashes? The code used to be very vulnerable to
memory shortages. I fixed this and also threw in some extra code
to make the buffers quad-longword aligned to help '040 systems
with DMA hard disk controllers.
* There is now a bit of new code in the program which opens
gtlayout.library. If there still is an old library release in
memory it gets flushed first, then the library is reopened. This
has the effect of forcing the library to get reloaded from disk.
* Even more changes to the terminal emulation code; previous
releases always ignored the current background colour when
clearing lines, the screens or moving text around. This has been
fixed. Some code also did BitMap peeking which is strictly
speaking not allowed. When using fonts with an odd height smooth
scrolling could leave pixel trash behind. Some routines, notably
those responsible for scrolling and erasing display text, never
made sure that the area to scroll/erase was within valid bounds.
As the low-level routines always counted upon this data to be
correct nasty crashes could result. Some of the new code is far
from being highly efficient, but should be much more robust than
the old routines. Anyway, those folks looking for a high-speed
terminal emulation probably have already chosen a different
program.
* The screen settings editor would occasionally assign the wrong
colour palette to phone book entry configurations. This has been
fixed.
* The routine to reset the text colours to something readable did
not take the new emulation pen settings into account. This has
been fixed.
* To aid debugging, there is a new switch in the modem settings
which tells the dialer to echo commands sent to the modem and to
show the modem responses.
* Added another switch to the misc. settings editor. You can now
disable those annoying "File ... already exists, do you want to
replace it?" requesters.
* Major revamp of the file transfer settings editor. First off, it's
no longer that tall. The "Page" cycle gadget cycles through all
the individual entries. As there are: the default protocol, the
ASCII transfer settings, the text transfer settings and the binary
transfer settings. For each protocol you will find another cycle
gadget, a text entry field and a big, friendly button labeled
"Edit settings...". The cycle gadgets will let you choose between
2..4 possible settings for each protocol. "XPR library" uses the
good old XPR interface, the text entry field holds the name of the
library to use. "Internal" uses the built-in code. "Default" uses
the default protocol. "External program" selects an external
program to handle the file transfer, the text entry field holds
the name of the program and possible program parameters. If using
the "External program" mode clicking on the downward pointing
`select' button will bring up another editor. Here you can choose
the program to use and you can edit the command line options it
should use. Pressing a button will append the corresponding escape
sequence:
`1 File (= %f)'
Inserts a single file name when the program is executed. A
file requester will pop up if necessary.
*NOTE: Case matters; %f inserts the file name along with its
complete path %F inserts the plain file name only, omitting
the path.*
`Files (= %m)'
Inserts a list of file names when the program is executed. A
file requester will pop up if necessary.
*NOTE: Case matters; %m inserts the file names along with
their complete paths, %M inserts the plain file names only,
omitting their paths.*
`Port (= %p)'
Inserts the ARexx port name `term' is currently using. Very
useful in conjunction with HydraCom.
`Device (= %d)'
Inserts the name of the serial device driver `term' is
currently using. This comes in handy with external programs
which permit sharing a device driver with other programs.
`Unit (= %u)'
Inserts the serial device driver unit number `term' is
currently using. This comes in handy with external programs
which permit sharing a device driver with other programs.
`Source (= %<)'
Inserts the name of the upload path for the current transfer
mode (ASCII, text, binary).
`Dest. (= %>)'
Inserts the name of the download path for the current
transfer mode (ASCII, text, binary).
`Screen (= %s)'
Inserts the name of the public screen `term' is running on.
*NOTE: May be an empty string.*
`Baud rate (= %b)'
The currently selected transfer speed in bits/second (Baud).
`Connect. rate (= %c)'
The transfer speed your modem made the connection with.
*NOTE: this will be the same value as given by %b if the
modem is not currently connected.*
The escape sequence %% expands into %, in case you need it. The
file transfer functions support the upload list window and the
ARexx file transfer list: if %f/%F/%m/%M escape sequences are
found in the command line text they will be replaced by the upload
list if necessary. Please note that when using an external program
no file names will be removed from the ARexx upload list. Here are
two examples to get you started:
`run hydracom device %p speed %b line %c nocarrier rec %> get'
This will invoke hydracom and start downloading into your download
drawer. Put this in to the "Receive" field of your binary transfer
settings.
`run hydracom device %p speed %b line %c nocarrier rec %> send %m'
This will also invoke hydracom. First you will be asked to select
the files to send, then hydracom will transmit them. Put this into
the "Send" field of your binary transfer settings.
`term' runs these commands in synchronous fashion, this is why the
"run" command is necessary above. Hydracom needs to interface to
`term' while it is running and not currently waiting for the
command to complete its task. Aside from the fact that commands
are executed in synchronous fashion, they are started just as if
you would invoke them using the "Execute AmigaDOS command..."
function.
* Fixed a security hole in the review buffer processing code.
Previously, the review buffer window could easily lock up when
receiving new data.
* Rewrote most of the carrier tracking code. If the carrier is lost
during a file transfer `term' will now properly notice that it is
no longer online and run through the usual cleanup procedures.
* More changes to the file transfer settings; for each protocol you
use you can now define a specific signature. If `term' sees this
signature in the input data stream it will automatically invoke the
protocol in question. The exception is the default protocol which
is handled a bit differently. There is no distinction between an
upload and a download protocol, since this is how the default
protocol works. If the default protocol is an XPR library the
library will be open all the time. Whenever the default protocol
is invoked, you will be prompted to select the transfer type (text
or binary as usual). For auto-activating XPR protocols the
signatures will probably be ignored.
*IMPORTANT: If you are using the Z-Modem auto-upload feature you
*MUST* invoke the transfer settings and pick the send signature
for the default protocol. Click on the select button at the right
side of the "Signature" text entry field. From the list that pops
up select "Z-Modem" and save your settings back to disk. If you
fail to do so, Z-Modem auto-uploads will *NOT* work.*
The signatures are scanned in the following order:
Default protocol (upload) Default protocol (download) ASCII
upload ASCII download Text upload Text download Binary
upload Binary download
This means that if you use the same signature for the Default
protocol and the Binary upload then the Default protocol will be
invoked.
For now, there are only three signatures built into the program
that can be picked from a list: Z-Modem, Hydra and QuickB. QuickB
really is not a true signature since it consists only of the ENQ
character. Please note that different built-in signature lists
will be presented for the upload and download settings.
For xprzmodem.library it only makes sense to use the upload
signature. Starting with v2.0 the library will always filter out
the download signature and start the download process all on its
own.
Hydra is a bit of a problem as it uses the same signature both for
uploads and downloads. Take care; if things don't work as they
should it may be better to delete the Hydra signature.
And before I forget to mention it: the signatures are entered in
the (hopefully) familiar command sequence syntax, e.g. ^X stands
for Control+X and \\ stands for \.
* The "\c <Menu name>" control sequence now checks if the menu
function it is about to call is enabled.
* Even more changes to the file transfer settings; I moved some data
from the misc settings over here. However, this beta version does
not move your misc settings values over into the transfer settings.
You need to to this manually.
* Renamed "Overwrite warning" to "Protective mode". Now this is what
it does: in every situation (overwriting files, clearing the
buffer, quitting the program, releasing the serial device driver,
choosing a file/drawer/program) `term' now runs a test to see if
either the settings are valid or asks if the user really wants to
do what he is about to do (it's not that we don't trust you).
Using the "Protective mode" switch you can turn off all those
sanity checks.
* Added another two terminal emulation control sequences for "ANSI"
compliance.
* The menu "Wait" command requester can now be closed with a single
keystroke.
* The program now uses special magic to make sure that all AmigaDOS
and ARexx programs started receive proper search paths.
* The button labels "|<", "<", ">" and ">|" have been replaced by
proper glyphs.
* The code to build the command line for external transfer protocols
did not handle empty strings correctly. It does now.
* The Hydracom example invocation commands listed in the previous
section of this document were not correct. If you are using this
protocol, please update the command lines as described in the
previous section.
* Any requester that shows just a single "Continue" button can now
be closed with a single keystroke.
* The status window now properly displays the name of the currently
connected BBS.
* Slight changes and enhancements to the user interface code.
* String gadgets are now properly aligned in columns in the path and
command settings editors.
* The prescrolling/jump scrolling code now gets `out of the way' if
the background colour is currently nonzero.
* Slightly improved low-memory stability, especially during the
initial setup procedure.
* The "You don't have RTS/CTS handshaking enabled..." request now
enables RTS/CTS handshaking with DSR checking if the user decides
so.
* The emulation pen selection now supports public screens again.
Please note that the implementation is not perfect (which was the
primary reason for disabling it in v4.2) and may not work properly
when using the keyboard to pick the colours, i.e. keystroke
activation may produce unexpected results.
* Added new tooltype/shell argument to specify the language the
program is to use.
* Some of the settings windows are now resizable. Please tell me if
this causes any problems. The code is still a bit weird, for
example some window sizes can cause the gadgets to overlap the
window borders by one or two pixels.
* Small changes to the user interface code. Fixed the notorious
double-click bug.
* The AmigaUW terminal resizing code would get invoked before the
internal lines/columns variables were set up properly, causing the
display to get messed up. This has been fixed.
* When invoking an external file transfer protocol the program now
checks if the file name given refers to an ARexx script (it reads
the first 256 characters and looks for the comment that identifies
an ARexx script), a plain AmigaDOS script (it takes a look at the
script file attribute) and eventually accepts the program name as
it is. If a file is identified as being a script file it receives
special treatment.
* Added another friendly reminder in case the user has enabled the
"Connect auto-baud" switch. Apparently, a lot of users have this
switch enabled without really knowing what it does and will get
into real trouble when making a connection.
* The chat line now gets activated when invoked via menu.
* When failing to allocate enough colours for the terminal window
`term' now falls back to four colour mode.
* Rewrote the dialer (again). If you press skip/abort it will now do
what it should do rather than ignoring your commands. The
original serial configuration also gets properly restored if the
dialer fails to make a connection. Various nice side effects are
included. For example, if in waiting state pressing the abort
button immediately exits.
* After finding out that the window resizing code did not work
properly in programs derived from the review buffer window
handling code I gave the original resizing routine another rewrite.
* The ARexx "SEND" command now sports a new "LITERAL" option. With
this option the text to send will be transmitted literally, no
embedded command sequences or special characters will be evaluated.
* The chat line text entry field no longer filters control
characters, even if you enabled this feature in the IControl
system preferences editor.
* The text buffer screen could hang when choosing to clear the
buffer contents from the menu. This has been fixed.
* The colour remapping that usually took place only in two colour
mode (which tries to avoid mapping the same colour to text
background and foreground) now also gets applied in four and eight
colour modes. Previously, it would ignore the colour mode the user
had chosen and just take a look at the depth of the screen the
program was using. This could cause all kinds of trouble when
running on a 256 colour public screen.
* When running on its own public screen with a window border `term'
could crash if there were still visitor windows open on the public
screen.
* `term' now opens screens as large as possible if the screen
settings indicate a specific screen size, but the user has no
means to change them. In previous program releases you would get
whatever was found in the screen settings, even if you didn't have
asl.library v38 or higher handy to change the dimensions.
* The xON/xOFF handling code works a bit differently now. If you
have the "Internal xON/xOFF handling" switch enabled in the serial
settings `term' will now go into `holding' state when you press
Control+S (= xON). To return to normal operation, press Control+Q
(= xOFF). If the "Pass xON/xOFF through" switch is enabled, both
xON/xOFF characters will be sent through to the remote, otherwise
`term' will swallow them. The big difference between this handling
and the old style of doing things is that `term' will no longer
drop into `holding' state when receiving an xON character from the
remote. The only way to bring `term' into `holding' state is by
pressing Control+S.
* The chat line now passes control characters and function key
macros through to the main program as you type them, i.e. they
will not show up in the text you type. The Tab key is special; if
pressed, the tab character will be passed through to the main
program. If you press Control+I the character will show up in the
chat line.
* Added a shortcut to select between pulse dialing and tone dialing.
This requires that your dial prefix or suffix command includes the
special command sequence \W. This sequence will translate into P
for pulse dialing and into T for tone dialing. So in order to take
advantage of this feature, you should change your dialing command
to ATD\W and select the dialing mode you want. Please note that
the dial mode option will be disabled if there is no \W in the
dial prefix and dial suffix.
* The default serial and modem setups are a bit different now. As
always, the program first tries to read the global system serial
settings and converts them if necessary. If RTS/CTS handshaking is
enabled, it now enables the RTS/CTS handshaking mode with DSR test
in order to avoid lockups. If the serial settings could not be
read the default setup now is 19,200 baud, 8-N-1 and RTS/CTS
handshaking with DSR checking. The modem settings no longer
include "ATZ\r" as the modem init command, the dial prefix now
reads "ATD\W" and the default dial mode is tone dialing.
* The default screen display mode settings are now taken from the
default public screen.
* Added another friendly reminder that is displayed whenever you
upgrade from an older program release or start the program for the
first time. The reminder will be displayed every time you start
the program until you save the program settings.
* Pasting the current clipboard contents now optionally converts
line feed characters into carriage returns (there is a new option
in the clipboard settings for this purpose).
* `term' used to fake an immediate XPR abort by returning a read
error in xpr_sread() in case the user had pressed the abort
button. This really should not be necessary, I just rewrote the
code to abort the read prematurely and to return whatever came in
so far. This implies the hope that the protocol will eventually
drop into xpr_chkabort() and find out what's cooking.
* The chat line now gets properly redrawn even if the status line is
currently turned off or sitting in a separate window.
* When copying the contents of the screen to the clipboard `term'
now converts alien IBM characters into ISO characters. This is a)
required for the IFF FTXT format in which text gets stored in the
clipboard and b) no longer causes invalid data to show up in the
output stream when pasting the contents of the clipboard. Put
another way, in earlier releases the IBM style characters would go
unmodified into the buffer. When pasting the clipboard contents,
they would then get `converted' into IBM style characters as
`term' always expected ISO characters to be found in the clipboard
(garbage in -> even more garbage out). Nasty, isn't it? Thanks go
to Stephen Bowman for telling me about the problem.
* Under some circumstances the text buffer would get the text font
width all wrong, causing characters to be left behind when
scrolling the page. This has been fixed.
* Cleaned up gtlayout.library for release, window resizing now works
a tad better, although the visual effects are not quite that
striking. But then perhaps they are striking, which is why they
haven't returned to work yet.
* `term' also takes care of the screen size now when falling back to
a usable screen mode. This should cure the notorious "half height
screen" problem.
* The cancel button now does what it should do in the date panel and
the modem panel.
* Changed the way how colours are assigned to drawing pens if the
selected colours cannot be displayed. The previous method only made
sure that there is no black text on a black background, the changes
now also take care of white text on white background.
* More changes to the XPR abort handling code; the first request to
cancel the transmission while xpr_sread() is being executed now
properly follows the rules of how to do things (it stops the read
request prematurely and gives the protocol a chance to call
xpr_chkabort() and to eventually find out what the user wanted).
If you hit cancel again it will - as `term' used to do in previous
releases - abort the read request, send a bunch of CAN characters
and return with an error. Martin Berndt suggested this.
* I know some of you won't like it, but the following settings
editors are now `paged' to save much space: serial, modem, screen,
terminal, emulation, capture and transfer. The nice thing about
the new look is that it allows me to save on something else:
cryptic abbreviations.
* Discovered some old code left over from prehistoric program
releases. The local museum wasn't interested, so I just discarded
it. Unfortunately, the total program size did not drop sharply
after I did so.
* Whoops, the sound settings editor did not check for `empty' strings
and could tell you that it was unable to locate the file "".
* The picker button of the "Help file" text editing field in the path
panel now does what it should do.
* More changes to gtlayout.library, it now respects the window bottom
border size gadget and allows the Tab key to be used for cycling
through paged settings editors.
* The clipboard and paths settings editors are now paged.
* In paged settings editors, pressing the Tab key cycles through the
pages.
* Shortened the english friendly startup reminder message so it fits
on NTSC screens.
* When starting up for the first time, `term' no longer complains
about missing DSR signals or notifies the user that RTS/CTS
handshaking should be enabled. This is done in order to avoid
confusion, the reminders and messages will follow later when the
user makes the first changes and saves them to disk.
* The XPR transfer window no longer warns about files not fitting on
filing system which look suspiciously like ram disks, i.e. are not
clearly identified as block mapped filing systems.
Changes introduced with v4.2:
*****************************
* Did not set up serial parameter correctly (nasty, those typos!).
* HydraCom could cause `term' to hang upon startup.
* Increased the width of all the integer gadgets in the rates
settings panel.
* Incrementer arrows did not work properly in all settings panels,
this was due to a bug in the SAS/C optimizer which caused
gtlayout.library to run into trouble.
* When called from the phonebook, the "Standard" button as shown by
the translation table settings panel will cause the translation
settings to be reset to standard values.
* Text stored in the buffer did not get bit 7 stripped if this
feature was enabled in the serial settings.
* New look slider gadgets (requires gtlayout.library v5).
* Numerous bug fixes in the user interface support library.
* Rewrote the text buffer capture routines, there should no longer
be extra, unwanted data in the buffer.
* Fixed the overly wide incrementer arrow bug which caused so much
trouble in previous releases.
* Reloading the fast macros when making a new connection did not
update the fast macro window.
* In the area codes editor, creating a new entry and moving it
around no longer leads to unexpected results.
* There was a typo in the source code which prevented the EOL
translation settings from getting changed via ARexx.
* For a phonebook entry dialed, the startup and login macros are now
executed in sequence rather than in parallel.
* New capture settings options "Convert characters": if enabled
along with the capture filter, text stored in the text buffer and
the capture file will be converted into proper ISO characters.
This effectively discards unprintable IBM font style characters.
Note that this option will do nothing if you are using the standard
text font rather than the IBM text font. Also keep in mind that
this special text filter will always be enabled for printer
captures in order to avoid nasty side-effects. The text and review
buffers will no longer use the IBM PC style font if this option is
in effect.
* In the emulation settings you will find a new switch labeled "Lock
wrapping" which will let you lock the current line wrapping mode
so that application software and terminal resets will no longer
modify it.
* Added another two `lock' options. Now you can choose to lock the
current text colour and the text rendering style. Take care, the
`Reset styles' and `Reset terminal' options will no longer change
colour and style once they are locked.
* Made sure that interleaved screens work properly. They do now. If
you still see text scrolled or erased plane by plane you're either
hallucinating or you have the PICASSO monitor driver installed
which has the systemwide effect of making the operating system
ignore requests to use interleaved bitmaps.
Closer examination has revealed that the interleaved bitmap stuff
did not work properly when using Kickstart v2.04. In fact,
Kickstart v3.0 is the first operating system release which fully
supports interleaved bitmaps for all graphics rendering calls.
Previous releases did not take advantage of them, even if set up
properly. Sorry folks, you won't be able to use this feature under
Kickstart v2.04 any more: I removed the necessary support routines.
* Added pen and text attribute translation. In the emulation
settings you will find an option to select nonstandard pens. In
this case, these pens refer to the terminal emulation rendering
pens and text attributes.
* Tweaked the terminal emulation parser to swallow the Amiga
specific commands to turn the cursor on or off (aSCR).
* The device/library selection now also includes ROM-resident
modules. At least one multiserial board includes a driver in its
ROM rather than on disk. In older releases, this particular driver
did not show up in the list, causing users to believe their boards
to be damaged.
* Changed the audio channel allocation priority. In previous program
releases the channels could be stolen, causing `term' to hang or
crash. Now it's DeliTracker to break down, not `term' ;-)
* Cloning a phonebook entry did not duplicate the corresponding
transfer settings. This has been fixed.
* The serial settings now sport an additional OwnDevUnit control
switch. You can now choose to ignore requests to release the
serial device driver or to have the device released, causing
`term' to check in intervals of 4 seconds if the device has become
available again. The default behaviour (the device driver is
released) is still supported.
* There is another sound options, called `Error sound'. `term' will
play this sound if a certain number of transfer errors have
occured. The number of errors to occur can also be set in the
transfer settings editor.
* You can now select when the file transfer routines should notify
you. You can be notified both at the beginning and the end of the
transfer, just at the beginning, just at the end or even never.
* The program no longer reports phone rates after losing a
connection if there is no sensible data to report.
* The "WAIT" command did apparently pay attention to the case of
characters passed in when scanning the wait list for matching
entries. This has been fixed.
* For some strange reasons, the VT100 supplementary graphics
character set never got loaded. This has been fixed.
* Rewrote the status line display code (yet again). When running on
a custom screen you probably won't see any difference, but: open
`term' on a public screen and watch your system performance. No
more deadlocks, no more sluggish mouse movements, no more CPU
hogging. The display window is a bit larger, but this hopefully
won't be a problem. After all, the window mode is usable now. The
old BOOPSI code is gone and will probably never return. The new
code is in many ways quite a bit nicer than the old code. For
example, it is synchronized with the window size changes. As soon
as the terminal adapts itself to the new window size, so does the
status line display.
* The review buffer window text rendering colours would also get set
to some value when opening the program on a custom screen. It now
leaves the text colour untouched in this case.
* The main window position is now saved along with the main settings.
* Finally added the one-line chat text entry field which surely is
no replacement for the packet window, but nevertheless I hope at
least some folks will find it useful. No split-screen chat yet,
sorry.
* The `dial number' requester now remembers phone numbers between
calls.
* The quick dial menu now gets disabled if the modem is online.
* The ASCII transfer menu items no longer get disabled if the
internal transfer routines are selected and the XPR ascii transfer
lib names are blank.
* Updated the font selection code for text and review buffer
displays. The review buffer now runs as a Process, so it can open
disk resident fonts if it needs to.
* Fixed a few bugs in the SETATTR ARexx command.
* Auto-expanding control panels, such as the phonebook and the file
transfer window no longer obscure the status line display.
* The program now properly pays attention to the number of lines to
use for the terminal display. Thanks go to Russ for his
persistence ;-)
* In monochrome mode text is no longer printed in inverse video mode.
* The screen settings editor now allows you to change the colour
mode even if `term' is running on a public screen.
Changes introduced with v4.1:
*****************************
* Fixed an Enforcer hit in gtlayout.library caused by the text
gadget handling code.
* If possible child windows are now opened within the bounds of
their parent windows.
* Fixed an Enforcer hit caused by the ARexx interface building
dialing lists.
* Reordered the parameters of the "ADDITEM" ARexx interface command.
* Rewrote the entire data capturing process. I somewhat opened a can
of worms, making it necessary to rewrite the code that handles the
translations for the "Receive CR as..." and "Receive LF as..."
options as well. Careful please, although I am sure the code works
correctly I may have knocked over some china cups.
* Added some more safety catches to the upload queue handling.
Using the auto-upload panel with the upload queue could leave you
locked out, blocking `term'. Generally, not a very nice thing to
do. Under the same conditions the code will now fall back to
presenting the standard file requesters.
* Fixed a bug in the capture panel which could turn up if the editor
was invoked from the phonebook.
* Corrected some few typos in the english user interface text.
* Turning off script recording did not reset the program status to
`ready'. This has been fixed.
* Heaven knows why, but v4.0 did not permit changing the screen
colours if running in monochrome mode.
* The `Freeze buffer' menu now properly toggles the state of the
capture buffer.
* The terminal settings now take the maximum possible values into
account when setting the selection ranges for the number of
columns and lines.
* When using a startup script or a startup command the program no
longer displays its `about' window on program startup.
* The ARexx command "GOONLINE" now sets up some more of status
variables than it used to do in v4.0.
* Upon startup the carrier signal is checked (provided your serial
configuration says that the carrier should be checked) and if it
is present the online timer is started.
* Added a bunch more of serial baud rates. Don't overdo it, a
standard Amiga won't go faster than 115K baud.
* Replaced the serial rate slider with an integer gadget featuring
incrementer arrows. Clicking on the arrows will cycle through all
standard baud rates. Note: requires gtlayout.library 1.97 or
higher.
* When offline detecting a carrier signal will bring `term' into
online state, provided the `Check carrier' flag is enabled in the
serial settings.
* ^Q now works again.
* The end-of-line character translation scheme was changed into one
single unified concept. Both carriage return and line feed
characters can now be translated into <cr>, <lf>, <lf><cr>,
<cr><lf> or can be ignored.
* The phone rates management is moving from the individual phone
book entries into a separate global settings editor. The old
rates management style will continue to work, but the new
management scheme has priority over it.
Here is how the new scheme works: you now assign the rates
accounting data to area codes rather than to single phone book
entries. Suppose you want a special set of rates settings to be
used for all phone book entries and phone numbers which start with
the area code "009". In this case you would add another group
entry, assign a name to it and put "009#?" into the pattern field.
The next time `term' makes a connection to a phone number starting
with the digits "009" the corresponding rates settings will be
used. `term' scans the list top-down, so the default settings
should be put into the last list entry. The patterns follow the
AmigaDOS syntax.
* Finally discovered why so many old phonebook files would cause
trouble: the internal conversion routine was *never* called.
* Horrors! The sound.datatype saves invalid sound files with the
playback size set to zero, causing `term' to crash with a
`division by zero' error. The replay routine now handles such odd
files.
* The sliders for redial delay and time to connect now finally sport
a resolution of a single second rather than ten seconds.
* Shortened gadget labels & texts and rearranged the gadget layout
to make sure all windows will fit on a plain 640 x 400 sized screen
with topaz/8. Sorry folks, 640 x 200 is right out of the question.
These are the days of miracle and wonder and all modern Amiga
hardware is capable of displaying screens this size in
non-interlaced modes. If things still don't seem to fit try a
different font, preferably proportional-spaced, or a different
screen resolution (change the overscan size if necessary).
* Whilst reworking the documentation discovered that I forgot to add
the `Alert' control to the terminal panel.
* With Workbench v2.04 the screen mode requester automatically
resets the screen size and overscan values to defaults.
* The text buffer search requester now sports another option, "Whole
words only".
* The jump scroll option code had a control switch set in the `wrong
direction'. Nothing serious, `term' would only scroll too many
lines.
* The jump scrolling routines did not take the size and position of
the currently active scroll region into account. This could knock
out the emulation since the cursor could cross the legal position
limits.
* Added some more control key codes as per the VT 220 Programmer
Pocket Guide, such as ^2, ^3, ^4, ^5, ^[, ^/, ^].
* Fixed another bug that would cause `term' to busy loop if it
stumbled upon a non-printable character in IBM PC style font mode.
* `term' now supports context-sensitive help with AmigaGuide v34. I
finally discovered a set of AmigaGuide commands that would not
crash when told to change the currently displayed context.
* Changing XEM options will save them back to disk.
* Rewrote the hangup/carrier lost/online/offline handling procedure.
The online/offline status tracking is protected by semaphores now,
the code to modify the status was reduced to a great deal, it's
only in termDial.c, termARexxCommands.c and in termMain.c. The
hang up command and carrier lost actions now go through the same
code, i.e. backup config & redial on logoff now work both for
logoff & hangup.
* The phone rates accounting by area codes did not work since the
routines were commented out. I removed the comments, they should
work now.
* The buffer management no longer collapses if you try to clear the
contents while there is still data coming in.
* Reread the "VT 220 Programmer Pocket Guide" and added most of the
remaining unsupported control sequences. Not supported are the
programmable function keys and data transfers bracketed by
DCS..ST. A number of control sequences are still no-ops, such as
the national/multinational font support operations.
* Double-clicking on a phonebook entry with no phone number attached
no longer starts dialing.
* Changed numeric keypad applications mode and PF key handling. I
hope it works with all keymappings now.
* Cloning a rates settings entry did not properly duplicate all data
associated with the original entry.
* Creating a new phonebook entry will set the rates accounting data
connected with it to zeroes.
* Rewrote the prescrolling/jump scrolling support code which now
should get the job more quickly than before.
* Resetting the terminal emulation no longer clears the state of the
`Wrap cursor moves' option.
* Rewrote and simplified serial I/O processing, I hope it still
works.
* Dialing commands no longer make it into the text buffer.
* The `Cancel' button in the phonebook panel was relabeled, now
showing `Use' instead.
* The program no longer puts the upload queue icon into the Workbench
window by default, there is a new option to turn it off.
* You can finally edit all the settings to be changed in the
phonebook, this includes function keys, cursor keys, translation
tables and fast macros. Hold down either shift key to bring up the
old file requesters. Note that you will also get the old file
requesters if something goes wrong reading and setting up the
settings data.
* Added an option to make a hardcopy of the screen contents, invoking
the printer graphics dump function.
* All the windows sporting pull-down menus now support menu help,
i.e. if you press the help key while a menu item is being
selected `term' will bring up the online help page for the
corresponding menu.
* Duplicating a phonebook entry now properly duplicates the
corresponding rates settings.
* Added new keyboard shortcuts to the phonebook controls. Pressing
`Del' untags the currently selected entry, `Shift+Del' untags all
entries.
* `term' now looks up the "Fonts" and "Libs" drawers in the current
directory and adds them to the "Fonts:" and "Libs:" assignment
list. At least for me, this greatly simplifies the installation
procedure. Just copy the contents of all distribution archives
into a single drawer and let `term' do the rest.
* The fast! macro button list now properly responds to Alt+Amiga key
clicks. I also thinned out the code a bit, causing the buttons to
render a little faster.
* Relabeled the button in the bottom left corner of the phonebook
window again. It now reads "Close".
* The buffer search requesters are now non-modal so you can have them
open and continue to use the text buffer display.
* I reworked some parts of the user interface, trying to clarify the
functions of menus and buttons. I also removed some redundant
button labels and changed all references to `directories' to
`drawers'.
* Shortened the button labels for the phonebook and the rate panel,
so they will finally fit on a 640 x 400 screen using topaz/8.
Some button labels now look fairly obscure, sorry about that. I
guess I'll rething the part about the "clarification" again...
* More weird & wonderful changes to the serial device interface
code. I hope it still works.
* When hanging up the line using the corresponding menu command the
online state is no longer reset to `offline' if in the serial
settings the "Check carrier" feature is enabled. This leaves the
test for the carrier to the usual routines which will detect if
the carrier is really gone.
* With multi-number phonebook entries the dialer now displays how
many of these numbers have been dialed already.
* There was something really wrong with the way clipboard text was
pasted as the `end of line' character conversion would be applied
twice.
* The "Time to connect" data was never used for phone rates
accounting, it only played a minor role in the "Connect limit"
settings.
* The pop-up `About' window no longer is GimmeZeroZero, which is
both sexy and uses less memory.
* Beep & action sounds are now loaded via datatypes if available.
Under v39 this may not work well for large sound files due to a
bug in sound.datatype. Plain IFF-8SVX format sound files will
still be played using the built-in routines since they are more
flexible than sound.datatype and can replay stereo sound.
* Non-standard-sized system imagery (sizing gadgets, arrow gadgets,
etc.) is now supported whereever it is used.
* The phonebook window no longer sports a `Close' button, all that's
left is the `Dial...' button.
* Phonebook entries which lack a phone number can no longer be used
for the dialing list.
Changes introduced with v4.0:
*****************************
* The window status line is no longer `misplaced' under Kickstart
v2.x.
* Font, file and screen requesters are no longer quite so tiny.
* Different font scales as by the VT100 specs (half width, double
width, top double size, bottom double size) work again.
* All memory allocations now go through memory pools, reducing
memory fragmentation greatly. Note: Kickstart 3.x owners *should*
have SetPatch 40.16 installed as the memory pool code might have
trouble freeing empty memory pools until the program exits. This
memory allocation scheme should also help to get `term' to work
with certain virtual memory system extensions.
* In the XPR transfer window the error/message list will no longer
hold more than 100 entries in order to save memory. I have received
reports of users who ran large file transfers overnight and when
getting up in the next morning the transfer error/message list had
accumulated so much memory it was no longer possible to move the
mouse: Intuition was unable to allocate enough memory to create new
input events. If 100 messages have accumulated and a new one is
about to be added the first and oldest entry will be removed.
* The status line display now properly reflects the name of the
current file transfer protocol.
* The quick dial menu checkmarks would get cleared only on some rare
occasions, i.e. if the first phonebook entry had the `Quick dial
menu' feature set. Now it gets the job done no matter which
phonebook entry is the first one in the quick dial menu.
* The main window menus used to have the command shortcut `W'
assigned twice.
* If running on the Workbench dropping icons on the `term' window
would ask for the type of file transfer (text or binary), but it
would get the selection wrong, i.e. if you chose text you got a
binary upload and the other way round. This has been fixed.
* When in zoomed state the XPR transfer window will display the name
of the file currently being transferred and how much of it has
already been transferred (if available). This display will be
updated about once a second.
* If icons are to be created for files downloaded it is no longer
necessary to turn on file type identification to actually get the
icons attached.
* Freezing the text buffer contents now properly updates the text
processing routine variables.
* Calling the `Print clipboard' function twice will no longer result
in a general system lockup.
* The double-buffered I/O routines now let you configure the buffer
size to use. The memory allocation also is a lot more `forgiving'
than it used to be: if necessary it will shrink the buffer size
until it can allocate enough space.
* To keep naughty applications from switching the cursor key and
numeric keymap into applications mode you can lock both key sets
now, so they will not to change their current modes.
* The old AmigaGuide release (v34 to be accurate) is supported now,
but with limited functionality. The help text is not context
sensitive and you need to shut down the AmigaGuide server manually
(by closing the AmigaGuide window) if the screen its window
resides upon is to be closed.
* `RING' and `CONNECT' messages from the modem are now reported
along with the time when they came in.
* The program now complains loudly about outdated catalog files and
incorrectly installed locale.library.
* The hotkey settings panel now checks each hotkey description text
after it is entered and complains if it is unuseable.
* The `QUIET' command line option (makes `term' start up iconified)
no longer crashes if Workbench isn't running.
* The program now features an all-new user interface.
* There is a new command line option called `BEHIND' which causes
the main screen to stay in the background and the main window not
to become active upon startup.
* If `term' fails to open a screen and finds out that the requested
screen display mode is unavailable it will copy the screen mode
the default public screen is in and retry.
* No more trouble with mixed-case device and library names. As you
pick them from the list the files are validated, i.e. `term'
tries to load the file in question and hunts for the
library/device resident tag included. If the tag is found the
`real' device/library name is copied from it, replacing the
original name the file was opened with. This means that you can
select `XPRZModem.Library' using the file requester and `term'
will look into the file to find out that the library wants to be
opened under the name of `xprzmodem.library'. Also included are a
type check (i.e. if a library is to be opened only files with a
library type resident tag are included in the list) and a brief
name comparison (i.e. only name case differences are allowed, so
`XPRZModem.Library' = `xprzmodem.library', but `foo.device' !=
`bar.device').
* The external emulation and the external protocol support routines
no longer share the same code and the same set of error
messages/options texts.
* A transfer protocol such as xprkermit.library will no longer leave
`term' in a `half-dead' state if it opens a new window in the
protocol setup phase. In previous releases this window was never
closed.
* The label text of XPR/XEM command options which accept a parameter
and thus cause the settings window to be closed after text is
entered is now drawn in the current highlight colour. This helps
to distinguish regular string gadgets and command option
parameters.
* If `term' fails to set up the XPR protocol properly, i.e. the
setup routine does not flag success, the library is closed right
away. This is how it has always been in previous `term' releases.
But this time the main menu is also updated to keep you from
starting a file transfer or changing the transfer options while
the library base pointer is invalid.
* In order to support external protocols which write data to or read
data from the serial line serial I/O processing is temporarily
disabled while the corresponding setup routines are running.
Although this behaviour isn't quite that nice it should avoid
serious trouble with xprkermit.library which could otherwise
disrupt the serial device request queue.
* There are now three buttons in the file transfer panel which
correspond to different abort levels:
* Skip current file Skips just the file currently being in
transfer (level 2)
* Stop transfer batch Cancels the entire batch transfer (level 1)
* Stop entire transfer Emergency stop (level -1)
These abort levels are supported by xprkermit.library and a number
of other file transfer protocols.
* Opening the transfer protocol settings editor will cause the
currently selected default XPR protocol to be reopened in case it
is not open yet.
* Holding down the control key and clicking with the mouse on a
space character will now correctly send it.
* Double-clicking on a phonebook entry will no longer start dialing
if the program is still online, i.e. if the regular `Dial' button
is disabled.
* If the line is hung up or the carrier is lost the call log file
(human readable, not the one that is intended for postprocessing
using call log analyzers) will include the costs for the call. In
previous releases `term' would only look for the `NO CARRIER'
message.
* The destructive backspace option now removes the character to the
left of the cursor but does not move the rest of the line one step
to the left. This makes the terminal emulation behaviour more
consistent with how real video terminals handle this job.
* The translation table settings panel now features a `Default'
button which resets the current translation settings to defaults.
* Just like the text buffer screen the review buffer window is
handled by a coprocess now.
* The packet window now supports function keys.
* For technical reasons I dropped the string gadget clipboard
support. I suggest that you use StringClip or a similar program
instead.
* Clipboard pasting from the review buffer window no longer requires
that you activate the main window.
* In the phonebook the edit list (right hand side listview display)
indicates whether an entry uses default settings or whether it
actually uses custom settings. Custom settings are indicated by
asterisks (`*').
* The packet window now uses the current terminal text font.
* Pressing Amiga+- in the packet window no longer transmits the
current string but changes to the main window while leaving the
current string intact.
* Fixed a potential bug in the generic list management module.
* With some file requester patches installed, such as old ReqTools
or MFR, the file requester code could fail to notice if a single
file was selected in multiselect mode.
* The phone rates are now reported according to the current locale
settings, i.e. they take the grouping and special attributes of
the local currency into account.
* The IFF-8SVX sound file player code now handles stereo and
compressed sound files gracefully (all flavours including
uncompressed stereo, compressed stereo, uncompressed mono and
compressed mono).
* The ARexx `WAIT' command could fail to report how many characters
it pulled from the data stream when a matching string was found.
This could result in random characters showing up in the terminal
text output.
* The routine to attach the wait mouse pointer to windows and to
block input to them was easily losing track of its nesting count.
In theory the nesting count could have wrapped around, locking you
out. The harmless side-effect was that sometimes windows would not
get blocked.
* The ARexx `WAIT' command argument and the wait list may include
control sequences now. These are expanded as soon as they go into
the list. This feature makes it possible to wait for sequences
such as `login:\rpassword\r' but will return result strings which
include control characters, so watch out!
* The ARexx `READ' command now allows you to combine the `CR' and
`NUM' options. Also, the maximum number of characters to read with
the `CR' option is no longer limited to 255 characters.
* The file transfer window will at startup display the name of the
currently selected transfer protocol. It displays a default value,
leaving the protocol identification to the XPR library.
* The ARexx `GETATTR' command would run into serious trouble if told
to put information into a stem variable. The result would be
Enforcer hits or crashes.
* If you put `term' into iconified state and press the hotkey
combination to bring its screen to the front you will no longer
get an Enforcer hit. Instead `term' will exit its iconified state
and return to normal action.
* The status line display now coexists much nicer with MagicMenu and
the like.
* The status line no longer displays what text mode the terminal
window is in (this was rather a silly feature) but rather if the
text buffer is currently recording or if it's frozen.
* The status line looks a bit different now (there is a proper
separation bar now instead of the hair line).
* Just like the v3.0 preferences palette editor `term' now permits
to select the screen rendering pens. This will *not* work under
v2.04 since gadtools.library v37 cannot handle it (actually it
can, but the default glyphs do not support it). This feature
permits you to change the screen colours while you can still keep
the window new look.
* The ARexx `READ' command could return random characters since the
return buffer was not set up correctly.
* Both the ARexx `READ' and `WAIT' commands now allow you type text
on the local console and have it sent across the line. As for the
`WAIT' command this is of great help if the script `hangs'. Note:
halting scripts and and such still requires pressing the `Shift +
Shift + Esc' key combination.
* The ARexx `READ' command would, if used with the `NUM' option,
always return a NULL-terminated string, no matter what kind of
data came in. It now returns the entire amount of data
transferred, including NULL-bytes.
* The phonebook list now clearly shows which entries are selected
for dialing and which are not (it flips the background and text
colours). Note: this works only with Kickstart 3.0 and above.
* I increased the possible number of dial retries in the modem panel
to 1000. In addition to that you can set the number of dial
retries to `unlimited' now.
* For those nasty MS-DOS based file transfer protocols which choke on
file names longer than 12 characters (eight for the name, one for
the dot, three for the extension) the file transfer options now
permit to have filenames shrunken before they are handed to the
transfer protocol. Internally, the XPR interface will still refer
to the file under its original name. The routine responsible for
shrinking the file names also takes care of the extension
separator dot. If there is more than one dot in the file name all
the others get replaced by underscore characters. Also, if there
is no dot extension it will be added.
* The packet window is handled by a coprocess now.
* If you're bold and daring you can make `term' handle the terminal
output on the schedule of a terminal emulation task. Please note
that this requires additional memory and will slow down the
emulation if your memory is fragmented. But on the other hand the
coprocess will stop serial input getting munged before it arrives
in the terminal emulation output buffer. Such things can happen
with systems which experience heavy DMA bus or task loading
* Turning on the `faster layout feature' no longer drops the screen
& window newlook.
* Due to an oversight the terminal emulation process could get
enabled even when using an external emulation, this has been fixed.
* The ARexx command `SENDFILE' would never remove the names of files
transferred from the upload list.
* Yet another new option: by default the dialer sends a `\r' string
when skipping an entry and when hanging up the line. You can
change this behaviour via the `Dialer abort hangs up' option now.
If enabled the dialer will go through the routine hang up
procedure (dropping the DTR signal, sending the hangup string, you
name it). This should convince even the most stubborn modems to
stop doing what they are currently thinking to be fun and to
return to normal operation.
* Clicking on the main window in order to activate it will no longer
trigger the character snapping function.
* Rewrote the ARexx `WAIT' routine to a great deal. It could easily
forget to turn serial input processing back on for the main
program. After a script would exit you would get stuck with data
coming in from the serial line, but none of it would be displayed
or worked upon.
* Clicking on the text buffer screen window in order to activate it
will no longer trigger the character snapping function. Since
there is no safety catch, i.e. the clipboard contents are
immediately replaced by what you selected after you let go of the
mouse button, this will reduce the chance of losing your current
clipboard contents.
* Subtle change in the dialer procedure: if an entry would use the
default serial settings they did not replace the current serial
settings, even if the previous dial list entry had altered them.
However, the original purpose of the default settings was to use
the unmodified global settings. The dialer behaviour now respects
this, changing the current serial settings back to the global
settings, not keeping the changes the previous dial list entry had
made.
* In previous program releases trying to make certain phonebook
entries not use the default settings was somewhat difficult: you
had to change the corresponding settings entries to something
different from the global defaults. Things are much easier now,
just open the settings editor and click on the `Use' button.
* The `Startup/Login macro' has been split into a startup macro and a
login macro. The dialing routine will first invoke the login macro
and then the startup macro. Only the dialing routine makes use of
the login macro.
* Small cosmetic changes to the user interface code: cycle gadgets
are a few pixels wider now in order to keep `CycleToMenu' happy.
* When hanging up the line the logoff macro was never executed.
* Finally discovered why the serial read quantum and all the
scheduled events were never processed again once they reported
that no further data was available. Now the event response loop
updates the signal mask again when it reaches the bottom of the
loop to see if any new data came in.
* You can now configure the screen depth, permitting to use the
Picasso II chunky display mode with `term'. Note: asl.library
v38-v40 fails to handle nonstandard background pen colours
correctly, i.e. the depth slider text may be illegible.
* External emulation libraries, namely xemvt340.library, should work
again. I changed the memory allocation call for the XEM support
interface, but I have no idea why it did the trick.
* The status window is handled by a coprocess now.
* Some ARexx interface commands now run asynchronously.
* Yet another visual gimmick (sorry, couldn't resist): menu
checkmarks and Amiga keys are now scaled according to the current
screen display ratio. Note: not really compatible with utilities
such as MagicMenu or Silicon Menus. Although the programs will run
the menu layout may look odd.
* The phonebook list can be scrolled with cursor keys now. You also
get a visual feedback if running under Kickstart 3.x.
* Fixed a nasty bug in the user interface code to pick the gadget
shortcuts: it would prefer to pick the last letter of gadget
labels and ignore any preceding letters.
* Scrolling lists such as the phonebook list will size-adapt to the
screen `real estate' available.
* The screen settings now give you full access over display overscan
mode and screen dimensions. Note that asl.library v38 or higher is
required to use these features.
* Changed the cursor key control in listviews, making it possible to
use the Shift/Alt/Control qualifier keys in Style Guide compatible
fashion.
* Rewrote certain dos.library related parts of the user interface
code, permitting plain tasks to call the routines. Consequently, a
number of coprocess-driven routines was rewritten to run on the
schedule of a task. Note: this may conflict with the ChangeScreen
utility included in the Picasso II distribution.
* Old style XPR settings entered using the old style prefs interface
(i.e. those that would pop up a text entry requester) were never
saved.
* The transfer library selection panel now allows you change the
settings of all selected protocols, you no longer need to select
all individual protocols as the default protocol and invoke the
`Protocol settings...' menu function on them.
* The text and review buffer search requesters maintain backlogs of
the previous search patterns now (use the cursor keys to scroll
through the patterns). Use the capture settings to change the
number of patterns to keep.
* The text buffer search function no longer enforces a
case-insensitive search.
* Most time and date displays now use the current locale settings.
It did not make sense to make all such displays use this text
formatting scheme. All remaining displays will use the common dos
date/time formatting parameters.
* Modified OwnDevUnit.library support: if another task wants to gain
access to the locked device `term' will release it unless the
modem is still online. The device is released by calling the
`Release serial device...' menu entry.
* Oops... the XPR options editing code did not flag changes in
numeric arguments to the main program. Also, old style XPR options
were always reported as `changed'.
* Not all memory allocations went through memory pools, this has
been fixed.
* The `Printer control enabled' switch was omitted from the
emulation panel, sorry about that.
* Some windows would not be moved into the foreground when opened,
so you had to play `hide and seek' to see on which screen they
appeared.
* With display aspect ratios that aren't even remotely square
incrementer arrows for integer gadgets are no longer larger than
their container boxes.
* The program no longer crashes if the XPR protocol feels about
displaying a message before any other window is open.
* By public demand the highlighting scheme in the phonebook window
was changed to yield better contrast.
* The speech volume is given in percent now, but the ARexx interface
`GETATTR' command did not reflect this.
* The sound settings now sport a volume slider which affects all
sounds played. Suppose a sound is to be played at maximum volume,
i.e. 64 for the current Amiga hardware and the volume slider is set
to 25%, then the sound will be played at volume level 16. Setting
the volume slider to 0 will cause `term' not to produce any sound.
* The transfer panel message list dimensions are now auto-adjusted
to the screen size. The layout code also tries hard not to make the
window overlap the status line.
* Added some bells & whistles to the phonebook window. I hope it
still works.
* Moved the user interface code into a shared library in order to
make things more complicated.
* The OwnDevUnit feature is no longer linked to the `Shared access'
option.
* All sounds are now replayed in the same fashion as the bell sound,
i.e. if a sound is currently being played a request to play
another sound will not be satisfied.
* Important file transfer notification messages are now printed in
the current highlight colour.
* The destructive backspace mode now offers three choices: off,
overstrike and shift. Overstrike mode clears the character below
the cursor and shift mode will shift the line contents to follow
the cursor to the left.
* The screen panel now features some more options which permit to
open the main window on a custom screen as though it were a public
screen and an option to split the status line from the main window.
* Tried to squeeze some space out of the control panels with mixed
results.
* The text buffer screen no longer uses the main screen display mode
by default, it is possible to select the display mode now.
* The built-in ASCII file transfer routines no longer draw upon the
current clipboard settings to determine how to send and receive
text. There is an all-new preferences editor for this purpose now.
* Added an upload list editor, permitting to collect the files to be
transmitted in a list before the transfer is started. You can
enter the file names, drop icons on the editor window or on the
AppIcon. When you are finished, just press the upload button.
* The packet window string gadget now has room for more than 1000
characters. Note: the `Load history' command only supports 255
characters per line.
* Added a prescroll option to the emulation settings. The system is
not very smart but should get the job done rather quickly; if the
cursor is positioned on the last terminal line the number of line
feeds in the input data stream is counted. The number of line
feeds or the max.prescroll number (whatever is smaller) will
determine how many lines to scroll the screen contents up.
* With an empty phonebook loading a new phonebook file would not
enable the phonebook list, this has been fixed.
* Added another option to complement the prescroll settings. Testing
revealed that the conditions leading to the prescroll feature to
be used were met only rarely. The `max. jump' option will give you
roughly the same functionality as the `max. prescroll' option, the
difference is in the handling of the input data stream: the
prescroll option counts the number of line feeds, the jump option
only looks for a single line feed and then scrolls up the screen
the given number of lines.
* The program now remembers the window position and size before going
into iconified state. When the window is reopened it will reappear
at the position and in the size remembered
* The ARexx `ADDITEM' command supports a new keyword `RESPONSE' to be
used for entries added to the wait list. Suppose you want all
`More (Y/n)?' prompts of the BBS login procedure to be skipped
during your auto-login script. Then you would call `ADDITEM TO
wait NAME "More (Y/n)?" RESPONSE "\r"', add the other keywords you
would want to wait for and then finally call `WAIT'. Whenever the
`More (Y/n)' prompt shows up the `WAIT' command will all by itself
send the `\r' string (or in other words, the carriage return
character) without exiting until the login string it was watching
for is found. Please note that this feature only makes sense with
the wait list but not with the `WAIT' command itself.
* Added login learn mode controls. If the option is enabled in the
dial panel incoming text and your responses to it will be recorded.
When you are finished with your usual login procedure, call the
`Record script' menu item in order to save the recorded data to an
ARexx script. By default the recorder only watches for single
keystrokes. If you wish to enter an entire line use the `Record
line' menu entry, calling this item a second time will transfer
the line you entered into the recording buffer. Pressing the
return key has the same effect. Pressing Shift+Return will also
put you into line recording mode, no need to use the cryptic menu
shortcut. Note: the `term' main menu now uses all available
printable 7-bit ASCII characters for keyboard shortcuts :-(
* Reworked the error reporting scheme, one of the weak spots of
`term'. In previous releases you would be told that a file could
not be saved or loaded, but no explanation would be given why the
action failed. Where possible `term' will now tell you the cause
of the error.
* The printer support code was not particularly sensible to printer
trouble, such as reported by the infamous printer.device requester.
Even if this requester was cancelled `term' would happily continue
to print, causing the printer trouble requester to pop up over and
over again. This has been fixed.
* The ARexx `DIAL' command is no longer synchronous by default,
there is a new `SYNC' option which causes the ARexx script to wait
until the dialer has made a connection/has failed to make a
connection. The `RC' (result code variable) will be set to 5 if no
connection was made, it will be 0 if a connection was made. Now
control can pass right through the `DIAL' command.
* ARexx support is no longer a compile-time option but an integral
part of the program.
* Fixed a couple of bugs in the user interface library which dealt
with odd alignment of slider level strings under v39. Some few
strings still break the rules, but the results are less devastating
than they used to be. Thankfully, most of the gadtools.library bugs
that caused such trouble were fixed in v40.
* Added the `trap' feature which implements the functionality of the
ARexx wait list in an asynchronous fashion. For each sequence
found a command sequence is executed. This should make it much
easier to write UUCP scripts, BBS programs and such. Please note
that the trap list is not identical to the wait list.
* Rewrote the ARexx/AmigaDOS command execution routines which now
execute their commands in truly asynchronous fashion, i.e. once
their processes are spawned they keep to themselves and notify the
main program when they are finished. This made it possible to
remove the odd command handling workarounds and the special ARexx
interface code that would take care of ARexx/AmigaDOS command
execution.
* The upload queue window code did not get the upload buttons
enabled if icons were dropped on it.
* The trap list loading code mixed up the order of commands and
sequences, this has been fixed.
* Fixed a monetary quantity formatting bug in the locale support
code.
* A malformed text formatting string was causing Enforcer hits in
the action logging routine.
* Added a few more `safety catches' to the screen opening code in
order to make sure it does not open screens `too deep'.
* Changing the screen size in the screen panel did not cause the
screen to be reopened, this has been fixed.
* Realized that it was not such a good idea to make most windows
simple refresh and changed them to smart refresh. I've probably
seen too many Macintosh programs forced to redraw their window
contents over and over again.
* The auto-upload panel now sports a button labeled `Upload from
queue' which if enabled will cause the current upload queue to be
transferred. Thanks to Bob Maple for pointing me into the right
direction.
* Fixed a truly nasty bug in the user interface code: integer type
gadgets did not remember their original values when created, they
would forget about them when queried and only would report them
correctly when the values were changed. There is something I forgot
to mention: integer gadgets understand hexadecimal (both 0x.. and
$.. notation), binary (%..) and octal (&..) notation. The idea
came from Martin Taillefer.
* The date and time entries in log files are now printed in DOS
format again.
* Recorded scripts and such no longer include `\*SP' codes instead
of plain spaces. This should improve readability.
* With the `shared screen' feature enabled `term' would not respect
the screen depth settings. This has been fixed.
* The XPR routines no longer queue more than one IORequest, this
should help to avoid trouble with some few device drivers.
* The ARexx `QUIT' command really works now.
* Removed the fixed-width font dependencies for Kickstart 2.04.
Although windows may look funny if you use a proportional-spaced
font, the program should deliver the same functionality as if it
were using a fixed-width font.
* Triggering the iconification function with the `Release serial
device when iconified' option enabled will ask you for
confirmation if the modem is still online.
* Just for the fun of it added datatypes support. The IFF-ILBM saving
routines of picture.datatype are used when saving the window
contents to a file.
* If the console output window specifier includes the `%s' string
formatting parameter it will be replaced with the name of the
public screen `term' resides upon.
* New ARexx command `PROCESSIO' permits to turn off serial I/O
processing by the main program. This will let ARexx programs
receive & process all incoming data, without having `term' pull
single strings from the input data stream.
* Keymap strings to include null-bytes should be properly processed
now, previous `term' releases would stop at the null-bytes and
ignore the rest of the input lines.
* Changes in the serial buffer size now cause the serial driver data
to be updated as well.
* Added facilities for external programs to rendezvous with `term',
allowing them to take over the serial driver. This was added
primarily to support my HydraCom Amiga port (please note that you
need revision 2 of my HydraCom port to interface to `term'), but
it may also help to support other file transfer protocols, such as
the original rz/sz programs.
* Whether trap list processing is enabled or not is now saved along
with the trap list itself.
* You can now lock the cursor keys and the numeric keypad separately.
Changes introduced with v3.4:
*****************************
* Raised the maximum number of quick dial menu entries to 50.
* Fixed a small bug connected with the text display screen.
* XPR protocols which do not support batch transfers now work again
as they did in v2.4.
* Corrected a spelling mistake in the call logfile creation routine.
* Fixed a memory allocation error in the review buffer code.
* Fixed a major bug in the file transfer routines. In previous
releases (say 3.1 and above) `term' used to throw invalid file
locks around (seems I will have to use less ambiguous identifier
names in the future...).
* Fixed an Enforcer hit in the quick-dial menu creation.
* Rarely, the program could fail to rebuild the quick-dial menu
after leaving the phonebook.
* As required by the specs, the XPR interface now switches baud
rates and serial parameters.
* Enhanced the capture functions.
* Changed the user interface layout for some windows, such as the
modem settings window.
* When running on a public screen will no longer cause lockups and
trouble with Workbench. Rendering errors are still possible.
* The very first characters to follow a modem connect message are no
longer quietly discarded.
* Finally solved the truly mysterious case of the missing screen
line.
* Fixed yet another Enforcer hit in the packet window code.
* The standard beep routine would not work.
* Libraries and devices can now be selected using simple menus
rather than the file requester.
* The program now flushes capture files to disk every minute in
order to insure that at least fragments of the captured session
will be safe when disaster strikes.
* Finally got the cross-hatch pattern to draw ghosted list views
right.
* The terminal hex mode would write too many bytes per line.
* The program would not pay attention to any icon tool type settings.
* Upon making a connection the dialing routine will no longer drop
the line by accident.
* The review buffer window will filter out unprintable characters
before displaying text lines.
* The program no longer knocks itself out if an initialization error
occurs during the startup phase.
* You can now select the name of the public screen the `term' window
is to be opened upon using a menu.
* If using a public screen the program will make use of the
corresponding screen font and no longer try to modify it in any
weird way.
* The ARexx command `READ' did not pay attention to the translation
table settings.
* A configuration file to be loaded upon startup as specified using
tooltypes or command line options will no longer be ignored.
* The positions and sizes of certain program windows will be stored
in the main configuration file.
* Initially, when a file was received the information window would
not display the space left on the output device.
* Introduced the `time to connect' interval.
* Added the serial read quantum.
* The phonebook window will now be opened large enough to hold all
its gadgets inside.
* Blinking text display is no longer restricted to eight colour
screens, provided the display architecture permits high-resolution
screens in more than 4 bit planes.
* The program now exists cleanly if vital resources such as the
output screen cannot be opened.
* The file transfer routines should run a tiny little bit faster now.
* Added the transfer performance meter.
* The clear screen control sequence now optionally resets the cursor
position.
* Rarely, the text buffer screen would not update the first text
line properly. Also, the screen display mode will no longer fall
back to HIRES/HIRES_INTERLACED.
* Rarely, the review buffer window would render text in the wrong
colours.
* The pen/palette sharing code was submitting incorrect colour codes.
* The review buffer window now responds to the same keypresses as
the text buffer screen and the main input window.
* Not all packet menu items were to be invoked using menu shortcuts.
* Added `Completion time' display to the transfer progress window.
* Introduced special transfer library settings. You can now select
which library to use for ASCII, text or binary transfers.
* Added built-in ASCII transfer routines.
* You can now search forwards or backwards through the text buffer.
* Text stored in the buffer no longer gets trailing spaces stripped
in order to keep weird uuencoded data intact.
* The menu items featured in the `Edit' menu now properly reflect
the state of the clipboard.
* A menu shortcut would be used twice in the main window menus.
* Rarely, the colour choices for the bar charts in the transfer
progress window would be wrong.
* The quick dial menu would not be rebuilt if the phonebook was
sorted or new entries were added.
* The ARexx commands `DELAY' and `SEND' would not turn off the text
cursor prior to text processing.
* Unless it is absolutely necessary, the text display scope is no
longer moved automatically.
* As for the text display screen and window the `Alt' keys now have
the same effect as the `Control' key.
* If new text is added to the text buffer the buffer screen and the
review window are properly updated now.
* A dialing list built using the quick dial menu was not enumerated
properly.
* Building a dialing list using the quick dial menu via extended
selection, then selecting the phonebook control panel, clearing
the dialing list and leaving the phonebook will no longer start
dialing the list just cleared.
* Checkmarks now indicate which entries in the quick dial menu are to
be dialed.
* The bar charts displayed in the transfer progress window are now
updated in a more efficient manner (the text colour has changed,
too). Also, unzooming the window will properly update the bar
charts now.
* A hardware buffer overrun error is no longer considered a fatal
error.
* With some requesters and windows string gadgets are auto-activated
now. Pressing the `Return' key will cycle through all the available
strings gadgets, holding down either `Shift' key will break the
cycle.
* Trying to quit the program will no longer ask for confirmation if
there is no reasons to ask for.
* The bar charts in the transfer progress window will be omitted if
the remaining screen space would not permit the entire window to be
displayed.
* The fast! macro window contents would be rendered in the wrong
colours.
* The phonebook window did not support any online-help features.
Changes introduced with v3.3:
*****************************
* Added the quick dialing menu.
* Enhanced the modem and screen settings
* Fixed a few bugs in the ARexx interface commands `REQUESTFILE' and
`REQUESTRESPONSE'
* Unfortunately a single line was missing in the XPR option setup,
causing them program not to save the transfer protocol options.
* No longer forces the creation date of an auto-capture file to be
included in the file. As an option, will use the naming convention
used in previous program releases.
* The program now optionally creates icons for files.
* Added a terminal hex-mode for debugging purposes
* Fonts are now opened using properly initialized DPI and aspect
ratio values which results in much better scaled outline font
rendering.
* The name of an external emulation library is no longer quietly
suppressed.
* It is possible to disable the double-buffered file management
routines now.
* Added the text pacing option.
* Apparently, external and internal terminal emulations tried to
turn on/off each other's cursors.
* Copying text to the clipboard now permits to append the text to
the current clipboard contents.
Changes introduced with v3.2:
*****************************
* Could not enter phonebook passwords
* The XPR interface now states much more clearly what the likely
cause of a serial I/O error might have been
* New sound support functions added
* Added `OK' and `ERROR' modem response codes
* The order of messages displayed in the file transfer window has
changed (now works top down rather than bottom up).
* The ARexx interface routines did not check whether the serial
device handles were available or not (boom!)
* Redid the fast! macro handling
* The text buffer screen did not notice when the buffer contents
were cleared
* Retuned the phonebook and dial list routines which could generate
Enforcer hits and trash innocent memory
* Boldface/italics characters will no longer leak into the window
borders
* The cursor image now reflects the state of the terminal window
* The program would generate an Enforcer hit when files were to be
transferred by dropping their icons on the main window
* When opening a capture file the program could ask twice whether an
already existing file should be replaced.
* Paste operations triggered from the review buffer window would not
start any paste operation until the main window was reselected
* Reworked the character translation table format. Translation
table files should be smaller now and should load a lot faster
* The screen/output window size now changes to the number of columns
specified in the terminal settings
* Rarely, the file transfer window would be opened very narrow and
tall. So tall in fact that display elements would overlap each
other, no text could be displayed in the big listview and Enforcer
hits were not to be avoided.
* The file transfer interface would produce Enforcer hits when to
transfer files using an old-style XPR library.
* The phonebook dial list handling would select single entries when
a shift key was pressed during keyboard selection.
* The review buffer window no longer loses track of the text area it
ought to display after resizing the window.
* Rewrote much of the keyboard/mouse/peanut butter handling loop.
No longer quite so complex.
* Thanks to user persistence the `Password' text entry field
available through the password/user panel no longer hides the
actual password text.
* `Hang up' menu item did not cause a backed-up configuration to be
restored.
* Naughty XPR protocols which would issue error reports through
xpr_update() during XPRSetup() would cause the transfer window to
be opened not to close afterwards.
* No more odd happenings in the status line online time display.
The code responsible would misinterprete a string index. This has
been fixed.
* It is no longer possible to dial phonebook entries which have no
name or phone number attached.
* The terminal emulation code no longer leaves background colour
artifacts when scrolling text with a background colour other than
the default background colour enabled.
* Calls to BeginIO() rather than SendIO() were giving some - if not
most - device drivers hard times. According to the few tests I
have run so far the program now performs more reliable when doing
file transfers. `term' now works again in conjunction with
isdn.device.
* The program no longer encodes the creation date into the name of an
auto-capture file but rather writes creation time and date to the
first new line in the file.
* New tooltype/command line option `Quiet' will cause `term' to
start up iconified.
Changes introduced with v3.1:
*****************************
* Previous releases of the phonebook would not clone single phonebook
entries correctly.
* The configuration copying routine will now selectively copy config
information to the currently selected phonebook entries.
* The phonebook encryption/decryption routines are a tad faster now.
* The program will now prompt twice for a phonebook access password.
* Comment, phone number, user name and password can be much longer
now than they used to be in previous releases.
* The phonebook now only contains the configuration information to
differ from the global configuration.
* Previous releases would not save any rate information along with
encrypted phonebook files, this has been fixed.
* The configuration copying routine now allows to `drop' parts of
the phone book configuration rather than replacing them with parts
of the global configuration. This feature works in conjunction
with the new phonebook file format.
* A new feature has been added: as an option, the program will
immediately start to redial the currently configured dialing list
as soon as the line is hung up or the carrier is lost.
* The program finally includes context-sensitive online help
implemented through amigaguide.library (note: Kickstart 3.0
required). Any window to offer a help text will display it when
the `Help' key is pressed.
* The ARexx interface documentation was entirely rewritten. The
main program documentation was updated and slightly enhanced. Be
sure to reread it!
* Both the text buffer screen and review buffer window now feature
new and improved scrollers. Scrolling and screen refreshes are
also quite a bit faster now.
* The text searching routine has been enhanced and now works much
faster than in previous releases. It also happens to find
multiple occurences of a string in a single line.
* Improved text buffer handling, reduced memory fragmentation if
running under control of Kickstart 3.0.
* The text buffer will no longer quietly swallow single characters
and will finally correctly wrap lines longer than 80 characters.
* The review buffer window now also sports a search function just
like the text buffer screen, other useful menu items have been
added as well.
* In previous releases the program would miscalculate the number of
bytes left on a filing device when receiving a file. It would not
take the number of bytes received into account, this has been
fixed.
* In order to transfer files one can simply drag the corresponding
icons on the `term' main window (requires that the `term' window
is opened on the Workbench screen).
* Instead of identifying the type of a file received, the program
will optionally attach a file comment to show the name of the BBS
the file was received from and the time and date when the file was
received.
* In case a file transfer is terminated due to errors the file
transfer window will remain open until explicitely closed.
* The XPR interface will disable the xpr_unlink() routine if the
`override transfer path' option is in effect.
* The XPR interface will no longer sort files to be uploaded by size
and name as most users found this feature annoying. It now sorts
the files by name.
* The file transfer window now correctly displays the names of all
files sent and received.
* The file transfer server was removed as it would not lead to a
performance gain but a performance loss.
* `term' now finally also runs as a window on the Workbench or any
other public screen (that's what you always wanted, right?). If
running under control of Kickstart 3.0 will attempt to share
screen colours with other applications, making it possible to run
the terminal emulation in eight or sixteen colours if enough
shareable pens are available.
* `term' will refuse to run on a public screen if running under
control of Kickstart 2.x and if the screen font happens to be
proportional-spaced.
* Some minor and some major bugs in the built-in terminal emulation
have been fixed.
* The program distribution now includes the 11 point IBM.font
donated by Bernhard F. Muller.
* I was surprised to discover that in previous releases the terminal
emulation server would never get activated as the conditions it
would be enabled would very rarely be met. Since the file
transfer server would actually lead to a performance loss rather
than a performance gain I chose to remove the terminal server
along with it. Both may be implemented in a future release.
* The terminal emulation should work a tad faster now.
* The program now requires diskfont.library to be installed in order
to work correctly.
* The program will ask for a confirmation prior to resetting the
serial device driver while the program is still online. Most
seasoned JR-Comm had trouble to adjust to the fact that the
JR-Comm command `send password' would use the same menu shortcut
as the `term'?`release serial device' command.
* The name of the call log file can now be configured completely.
Previous releases would use the call file path and use the name
`term-call.log'.
* The status window now displays the name of the ARexx host port,
the BBS name, phone number, comment and current user name.
* In order to confuse and annoy you, the menu layout has been
changed once again.
* A new feature has been added: the `wait' menu item will
repeatedly send the sequence <Space><Backspace> in order to
simulate terminal input.
* The program now requires a bit more memory than before (program
size has climbed by about 50 KBytes).
* New command line options and tool types have been added, some have
been renamed.
* The program is now much smarter in determining the sizes of the
phonebook and file transfer window.
* The lists used by the phonebook and the date panel no longer look
quite so weird if using a proportional-spaced font.
* The main screen text snipping scheme has changed a bit and now
resembles the standard console device snipping. Also supported is
double-clicking on single words in order to snip them.
* The ARexx interface has been entirely rewritten from scratch.